Firestore规则对象的映射

Wil*_*iam 6 firebase firebase-security google-cloud-firestore

我有一个收藏品.每个文档都有一个对象阅读器,用于存储可以访问文档的人的uid.它可以是一个或多个可以访问文档的用户 在此输入图像描述

我正在使用角火基

constructor(private afAuth: AngularFireAuth, private afs: AngularFirestore) { 
    this.afAuth.authState.subscribe(auth => {
      this.users = afs.collection<User>('users', ref => ref.where('readers.' + auth.uid, '==', true)).valueChanges();
    });
  }
Run Code Online (Sandbox Code Playgroud)

如果我使用规则允许所有读取,我的页面将显示正确的条目

match /users/{userId=**} {
      allow read, write;
    }
Run Code Online (Sandbox Code Playgroud)

如果我添加规则以使用uid进行过滤,我会收到错误缺失或权限不足的错误.

match /users/{userId=**} {
      allow read, write: if resource.data.readers[request.auth.uid] == true ||
                        resource.readers[request.auth.uid] == true;
    }
Run Code Online (Sandbox Code Playgroud)

感谢我对规则做错的任何帮助.提前致谢.

小智 -3

您是否尝试将数据库规则的规则更改为 auth=null ?

{
  "rules": {
    ".read": "auth == null",
    ".write": "auth == null"
  }
}
Run Code Online (Sandbox Code Playgroud)