Ketika saya langsung mengambil dokumen menggunakan .doc().get() aturan keamanan firestore menolak izin. Apa yang harus saya lakukan untuk mengizinkan operasi CRUD untuk pengguna aplikasi Ionic saya yang diautentikasi? Saya memiliki fungsi berikut di aplikasi PWA Ionic saya
``` async getUserProfile(): Promise<firebase.firestore.DocumentSnapshot> {
const user: firebase.User = await this.authProvider.getUser();
this.currentUser = user;
console.log('found current user');
this.userProfile = firebase.firestore().doc(`userProfile/${user.uid}`);
console.log('returing userprofile', this.userProfile.get());
return this.userProfile.get();
}```
Namun panggilan ke this.userprofile.get() gagal karena peringatan keamanan dari aturan Keamanan Firestore
menemukan pengguna saat ini mengembalikan profil pengguna ZoneAwarePromise __zone_symbol__state: 0 __zone_symbol__value: FirebaseError: Izin tidak ada atau tidak mencukupi. di e baru (http://localhost:8100/vendor.js:92760:23) di http:// localhost:8100/vendor.js:102987:28 . . . (http://localhost:8100/polyfills.js:10248:56) kode: izin ditolak nama: FirebaseError toString: ƒ () pesan: Izin tidak ada atau tidak mencukupi. tumpukan: FirebaseError: Izin tidak ada atau tidak mencukupi.\n di baru e
Aturan Keamanan Firestore ditetapkan sebagai berikut
service cloud.firestore {
match /databases/{database}/documents {
match /userProfile/{userId}/{documents=**} {
allow read, update, get,delete: if request.auth != null && request.auth.uid == userId;
allow create: if request.auth != null;
}
}
}
Aturan keamanan apa yang harus diterapkan untuk memungkinkan pengguna yang diautentikasi melakukan CRUD dokumen mereka? Atau cara yang benar untuk mengambil dokumen dari koleksi
PEMBARUAN: Ini berfungsi langsung dari simulator tetapi tidak dari aplikasi