【发布时间】:2021-05-17 14:18:29
【问题描述】:
我正在尝试编写一个简单的 Firestore 规则,该规则仅在用户是父文档中的管理员时才允许创建。父文档如下所示:
{
...,
roles: {
uid: 'admin'
}
}
我尝试使用的规则是这样的
match /cookbooks/{cookbookId}/{document=**} {
allow write: if get(/databases/$(database)/documents/cookbooks/$(cookbookId)).data.roles[request.auth.uid] == 'admin'
}
这不起作用,但如果我这样做就够奇怪了
match /cookbooks/{cookbookId}/{document=**} {
allow write: if get(/databases/$(database)/documents/cookbooks/$(cookbookId)).data.roles != null
}
这行得通。所以这让我相信它得到了角色,但我不知道为什么第一条规则不起作用。我已经三重检查了我的 Firestore 数据是否正确,并且我的 uid 在角色对象中的值为“admin”
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security