【发布时间】:2020-10-18 09:57:35
【问题描述】:
错误 [firebase.firestore] FirebaseError:权限缺失或不足。
我有一个允许少数用户更新的对象。管理员将设置他们的电子邮件,这些使用这些电子邮件登录的用户将被允许更新。
这些是我尝试过的规则:
allow update: if request.resource.data.managerEmails.val().contains(request.auth.email) && request.resource.data.id == resource.data.id;
allow update: if request.resource.data.managerEmails.contains(request.auth.email) && request.resource.data.id == resource.data.id;
allow update: if request.resource.data.managerEmails.includes(request.auth.email) && request.resource.data.id == resource.data.id;
要更新的资源:
{
id: "someid",
...fields,
managerEmails: "abcde@email.com,anothermanager@email.com",
}
正在更新的用户身份验证:
{
uid: "rSTLnYD9aisyZJHQPC6sg7mlsZh1",
email: "abcde@email.com",
...
}
更新:
使用request.auth.uid 一直在其他规则中工作,但在这种情况下,我必须使用电子邮件,因为用户可能还没有注册。
使用规则游乐场,我得到Property email is undefined on object. 也许使用request.auth.email 是不可能的?
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security