В моем Firestore есть следующее правило
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/{documents=**} {
// Only the authenticated user who authored the document can read or write
allow read: if request.auth.uid == userId;
allow write;
}
}
}
, которое, похоже, не работает, и я использую Rest API для получения данных. Для аутентификации я звоню: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[API_KEY]
После аутентификации мы получаем idToken и передаем в качестве заголовка авторизации следующий URL https://firestore.googleapis.com/v1beta1/projects//databases/(default)/documents/users
В коллекции пользователей в качестве имени документа указан идентификатор, а значением является просто набор фиктивных ключей.
Когда я запускаю клиент, я получаю сообщение об ошибке:
{u'status ': u'PERMISSION_DENIED', u'message ': u'Missing или недостаточно прав.', U'code ': 403}
Если я жестко закодировал значение идентификатора пользователя, он работает.Таким образом, значение, возвращаемое в {userid}, похоже, не соответствует UID по какой-то причине.
Может кто-нибудь помочь с расшифровкой, почему это происходит?
Спасибо, Рамс