Google cloud firestore FIrebase规则:如何使用$访问祖先节点';谁的数据?
目标:只有经过身份验证的“所有者”用户才能在“某些集合”中读取/写入其文档 示例查询:/users/peter/some collection/myDoc 用户节点有一个字符串uid字段,这在许多Firebase规则示例中很常见 我已经阅读了所有的文档,它说您可以在路径中放置一个{variable},并使用$引用它,但我无法使用在线数据库规则编辑器“编译”此规则:Google cloud firestore FIrebase规则:如何使用$访问祖先节点';谁的数据?,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,目标:只有经过身份验证的“所有者”用户才能在“某些集合”中读取/写入其文档 示例查询:/users/peter/some collection/myDoc 用户节点有一个字符串uid字段,这在许多Firebase规则示例中很常见 我已经阅读了所有的文档,它说您可以在路径中放置一个{variable},并使用$引用它,但我无法使用在线数据库规则编辑器“编译”此规则: rules_version = '2'; service cloud.firestore { match /databases/
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user}/some-collection/{doc} {
allow read, write: if request.auth.uid == $(user).data.uid;
}
}
}
我试图通过在用户/帐户级别验证uid来允许访问用户的子集合
它不喜欢美元符号:
保存规则时出错-第26行:意外的“$”
从路径中的通配符获得的$(用户)
是字符串值,而不是文档
如果要访问/users/{user}
文档中的数据,可以:
我不清楚你想做什么。对于有关安全规则的问题,显示规则应该允许的实际查询总是很有帮助的,它确切地说明应该匹配哪些文档以及它们包含哪些内容。
allow read, write:
if request.auth.uid == get(/databases/$(database)/documents/users/$(user)).data.uid;