В настоящее время я работаю над правилом Firebase и также являюсь новичком ie. Я использую существует, и кажется, что он не работает, возможно, мой синтаксис или запрос не верны. Есть идеи, как это должно работать? Я пытаюсь проверить данные документа, которые я обвел красным, если они существуют.
Редактировать: Кажется, я буду использовать get () и не буду существовать для извлечения uid из базы File Path на у меня вопрос, как сделать Путь к файлу тем полем, которое я обвел, чтобы использовать его для условия в Firebase Rule.
Клиент Код
return Firestore.instance
.collection('contacts')
.document(uid)
.setData({
friendId: {
“message”: {
},
“uid”: friendId,
}
});
Правила безопасности Firebase
match /databases/{database}/documents {
match /contacts/{userID}/{friendID} {
allow read,write : if isValidToAccessContacts(userID,friendID);
}
}
function isValidToAccessContacts(userId,friendID){
return exists(/databases/$(database)/documents/contacts
/$(request.auth.uid)/$(friendID.data.uid)/{document=**}) ||
exists(/databases/$(database)/documents/contacts
/$(friendID.data.uid)/$(request.auth.uid)/{document=**}) ||
exists(/databases/$(database)/documents/contacts
/$(request.auth.uid)/$(request.auth.uid)/{document=**})
;
}