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(); 
}