我有一个收藏品。每个文档都有一个对象阅读器,用于存储可以访问文档的人的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();
});
}
如果我使用规则允许所有读取,我的页面将显示正确的条目
match /users/{userId=**} {
allow read, write;
}
如果我添加规则以使用uid进行过滤,我会收到错误或权限不足的错误。
match /users/{userId=**} {
allow read, write: if resource.data.readers[request.auth.uid] == true ||
resource.readers[request.auth.uid] == true;
}
感谢我对规则做错的任何帮助。 提前谢谢。
答案 0 :(得分:0)
您是否尝试将数据库规则的规则更改为auth = null?
{
"rules": {
".read": "auth == null",
".write": "auth == null"
}
}
答案 1 :(得分:0)
//Object structure
"documentToShare"{
documentData: {},
documentUsers:{user1UID,user2UID}
}
//Firebase rules
Rules:{
"documentToshare: {
match documentToshare/documentUsers/&uid
}
}
这是一个快速的例子,可能无效但它应该给你一个想法