У меня возникли проблемы с пониманием правил firestore.
Я написал следующие правила в моей базе данных Firestore. Когда я запускаю тест в консоли с использованием идентификатора аутентифицированного пользователя для обновления объекта ресторана, тест проходит успешно. Однако, когда я пытаюсь выполнить этот вызов в Kotlin с помощью SDK, после аутентификации с помощью входа в систему я получаю Permission Denied. Что я пропустил?
function userIsAdmin(restaurantId) {
return get(/databases/$(database)/documents/restaurants/$(restaurantId)/users/$(request.auth.uid)).data.role == "Owner";
}
match /restaurants/{restaurantId} {
allow read: if true;
allow write: if userIsAdmin(restaurantId);
}
match /restaurants/{restaurantId}/menus/{menuId} {
allow read: if true;
allow write: if true;
}
match /restaurants/{restaurantId}/users/{userId} {
allow read: if true;
allow write: if true;
}
}
}
Пользовательский объект в firestore:
Запрос в Kotlin:
firestore.collection(COLLECTION_RESTAURANT)
.document("aXTSlGphPbzAXRInHBIg")
.update(KEY_RESTAURANT_NAME, "New restaurant")
.await()