컬렉션이 있습니다. 각 문서에는 문서에 액세스 할 수있는 사용자의 uid를 저장할 객체 판독기가 있습니다. 내가 각도 중포 기지Firestore 규칙 객체 맵
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();
});
}
I 사용자 규칙이 모든 읽기를 허용하는 경우, 내 페이지가 표시됩니다 올바른 항목
을 사용하고
문서에 액세스 할 수있는 하나 또는 여러 사용자 수
uid를 사용하여 필터링하는 규칙을 추가하면 누락 또는 불충분 한 사용 권한 오류가 발생합니다.
match /users/{userId=**} {
allow read, write: if resource.data.readers[request.auth.uid] == true ||
resource.readers[request.auth.uid] == true;
}
내가 규칙을 잘못했는지 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
내가 당신의''.' 내부를 넣어 resource.data.readers 경우 필요가 있다고 생각 아이디어를 제공해야합니다. [요청 .auth.uid] == true' this like – Hareesh
구문 오류가 있습니다. – William
문서에서'$ (request.auth.uid)'를 사용하여 값을 얻었습니다. if resource.data.readers [$ (request.auth.uid)] == true' – Hareesh