我们是否可以使用Firestore数据授予或限制对Firebase云存储上托管的文件的访问权限?
我希望将其用作Firebase安全规则
allow write: if get(/databases/mydbname/documents/guilds/$(guildID)).data.users[(request.auth.uid)] in ["Admin", "Member"];
答案 0 :(得分:9)
目前无法从其他产品的安全规则中访问不同的Firebase产品。请参阅:is there a way to authenticate user role in firebase storage rules?
但似乎您正在尝试检查用户的组成员身份。我建议您将其建模为所谓的自定义声明,而不是在数据库中查找该组成员身份。而不是(或除此之外)将成员资格写入数据库,您set the claim "user {uid} is a member of group {guild1}" into the user profile using the Firebase Admin SDK:
admin.auth().setCustomUserClaims(uid, {guild1: true}).then(() => {
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
});
完成后,您可以检查安全规则中的公会成员身份:
allow read: if request.auth.token.guild1 == true;
(我不确定是否/如何将公会会员资格建模为地图,如果情况确实如此,我会更新此答案。)