Моя коллекция называется "omgcollection", а образцы документов, как показано ниже
{
"omgcollection": {
"documentId1": {
"somekey": "somevalue"
},
"documentId2": {
"somekey": "somevalue"
}
}
}
Здесь я использовал uid в качестве идентификатора документа, как предоставить доступ только для чтения к документам на основе $ (request.auth.uid)
Ниже правило не работает
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if exists(/databases/$(database)/documents/omgcollection/$(request.auth.uid));
}
}
}
Вот мой код:
//customToken ~ uid = documentId1
firebase.auth().signInWithCustomToken( < customToken > ).catch(function(error) {
console.log('auth error :', JSON.stringify(error));
});
var db = firebase.firestore();
db.collection("omgcollection").doc("documentId1")
.onSnapshot(function(doc) {
console.log("data: ", doc.data());
}, error => {
console.log(error)
});
Этот код возвращает FirebaseError: отсутствуют или недостаточные разрешения.