Firebase云存储规则可以针对Firestore数据进行验证吗?

时间:2017-10-21 09:46:38

标签: firebase firebase-storage firebase-security google-cloud-firestore

我们是否可以使用Firestore数据授予或限制对Firebase云存储上托管的文件的访问权限?

我希望将其用作Firebase安全规则

allow write: if get(/databases/mydbname/documents/guilds/$(guildID)).data.users[(request.auth.uid)] in ["Admin", "Member"];

1 个答案:

答案 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;

(我不确定是否/如何将公会会员资格建模为地图,如果情况确实如此,我会更新此答案。)