Firestore安全规则检查备用文档的访问权限

时间:2020-07-24 15:03:48

标签: firebase-security

我正在尝试研究如何设置Firebase安全规则,以基于经过身份验证的用户是否有权访问文档来限制读写。

我有一个帐户文档,其中包含一组用户,这些用户可以访问文档中的数据以及帐户文档集合中的其他文档。

我有以下规则设置:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    
    match /_accounts/{accountid}/activities{
        allow read: if request.auth != null && get(/databases/$(database)/documents/_accounts/$(accountid)/allowedusers/$(request.auth.uid)).data.allowed == true
      
    }
  }
}

但是,当我尝试读取活动集合中的文档(通过身份验证时)时,我发现权限不足或不足。

我的测试客户端是一个Flutter应用程序:

RaisedButton(
            child: Text('Test FB Rules'),
            onPressed: ()async{
              try {
                var docs = await firestore.collection('_accounts').document('2iRBq9RlhbrjOx908IzV').collection('activities').getDocuments();
                  
                print(docs);
                
              } catch (e) {
                print(e);
              }

            },
          )

我如何只允许读取包含文档ID为已认证用户ID且文档字段“允许”设置为true的文档?

0 个答案:

没有答案