假设有两个文件
/orgs/foo
/users/alice
和/users/alice
有一个引用类型字段org
,引用/orgs/foo
。
/orgs/foo
时应该可以访问 request.auth.uid == 'alice'
。我怎么能这样做?
我想这是这样的,但我无法弄明白。换句话说,我如何获得引用文档的ID?
function isOrgMember(orgId) {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.org.__id__ == orgId;
}
match /orgs/{orgId} {
allow read: isOrgMember(orgId);
}
答案 0 :(得分:1)
我知道自原问题以来已经有一段时间了,但我遇到过类似的问题,我希望这可以帮助你或其他人。
你的条件是:
get(/databases/$(database)/documents/users/$(request.auth.uid)).data.org.__id__ == orgId;
但是org
是一个引用,(显然)意味着你需要get
它。试试这个:
get(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.org).id == orgId;