Я создаю правило безопасности для приложения Firebase с аутентификацией.
Я хочу, чтобы только пользователь мог иметь доступ к своему собственному пользовательскому документу.
У меня есть это правило безопасности:
match /users/{uid} {
allow read, update: if request.auth.uid == uid;
allow create: if request.auth.uid != null;
}
Но когда я запускаю код клиента, выдается ошибка:
[Firestore]: Статус {code = PERMISSION_DENIED, description = Отсутствует или недостаточно разрешений., Причина = null}
В коде клиента я проверяю, существует ли уже документ с пользовательским uid (если его нет, я записываю данные в firestore):
final QuerySnapshot result = await Firestore.instance
.collection('users')
.where('uid', isEqualTo: user.uid)
.getDocuments();
documents = result.documents;
if (documents.isEmpty) {
…
Почему я получаю эту ошибку?
Я прочитал https://firebase.google.com/docs/firestore/security/rules-query и там написано, что db.collection("stories").where("author", "==", user.uid).get()
действительно.