1

我已閱讀Firebase存儲的組安全性文檔,其中建議使用自定義令牌或在文件元數據中包括組信息,但是,當用戶離開組時,我不理想想要更新每個文件中的元數據或者必須創建新文件夾並更新組令牌信息。Firebase存儲中的動態組安全

如果這是實時數據庫,我會檢查用戶是否仍然是組成員。有沒有更好的解決方案,我可以探索這些方面?

非常感謝

回答

0

是的,與自定義標記,您可以將附加屬性與用戶關聯。訣竅是當您爲給定的用戶ID創建自定義標記時,您可以添加其他聲明並使用它們來評估訪問規則。在您的情況下,您可以添加用戶所屬的組ID作爲附加聲明,當您的服務器上使用用戶從客戶端應用程序登錄的服務器上創建令牌時。因此,無論何時用戶離開您的組,他的組ID關聯都將被刪除,因此當您爲該用戶重新創建令牌時,您將不會再在其他聲明中關聯組ID。 示例示例

public static String createCustomToken(String userId, Map<String, Object> additionalClaims) { 
FirebaseOptions options = new FirebaseOptions.Builder() 
.setServiceAccount(new FileInputStream(FIREBASE_ACCESS_FILE)).build(); 
FirebaseApp.initializeApp(options); 
Task<String> customToken = FirebaseAuth.getInstance().createCustomToken(userId, additionalClaims); 
return customToken.getResult().toString(); 
}