Koleksiyonum var. Her belge, belgelere erişebilecek kişilerin kullanıcı kimliğini saklayacak bir nesne okuyucusuna sahiptir. Ben açısal FirebaseFirestore kuralları eşlemesi
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();
});
}
Ben kullanıcı kural tüm okuma izin verirseniz, benim sayfa gösterecektir doğru girdileri
kullanıyorum
bir belgeye erişebilirsiniz bir veya birçok kullanıcı olabilir
match /users/{userId=**} {
allow read, write;
}
UID kullanarak filtrelenecek kuralı eklediğimde, eksik veya yetersiz izinler alıyorum.
match /users/{userId=**} {
allow read, write: if resource.data.readers[request.auth.uid] == true ||
resource.readers[request.auth.uid] == true;
}
Kurallar için neyi yanlış yaptığım konusunda herhangi bir yardım için teşekkür ederiz. Şimdiden teşekkürler.
i 'a .' içine koymak resource.data.readers eğer gerek fikir vermelidir. [Istek .auth.uid] == true 'like this – Hareesh
Bu bir sözdizimi hatası olur. – William
Tamam, dokümanlar içinde değeri almak için '$ (request.auth.uid)' kullandılar. resource.data.readers [$ (request.auth.uid)] == true 'yerine – Hareesh