如何在Firestore中访问请求用户的数据

时间:2019-06-02 14:15:23

标签: firebase firebase-authentication google-cloud-firestore firebase-security-rules

在我的Firestore中,我有一个名为admin的布尔字段,用于我的用户集合中的用户文档。如果为true,则该用户可以读取其他用户帐户。但是我该如何在firestore.rules中访问该字段?

这是行不通的,但是可以使我理解我要做的事情

allow get: if request.auth.uid.data.admin == true
我在文档中看到的唯一数据是正在访问的资源。这意味着每个用户在其中引用的每个管理员都将拥有一个admins数组,这将是维护噩梦

2 个答案:

答案 0 :(得分:1)

听起来您正在尝试use data from another document than the one that is being read。如果您有一个/users集合,并且每个用户的UID下都存储有一个文档,则:

allow get: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true

因此,这将获取用户的文档,然后检查其中是否有一个值为admin的{​​{1}}字段。

答案 1 :(得分:1)

尝试

int

假设您将uid用作用户doc id,这不仅适用于用户(通过设置此功能的集合)