Я пытаюсь сделать очень простую вещь, и это сопоставление request.auth.uid
со значением поля в моих документах transaction (например, этот resource.data.useruid
) в правиле безопасности Firebase, чтобы получить транзакции определенного пользователя, вошедшего в систему. Однако я не получаю никаких документов при их запросе и вместо этого получаю сообщение об ошибке.
Так выглядит коллекция - там всего один документ с полем useruid
.
Значение поля сопоставляется с пользователями uid (снимок экрана, сделанный на вкладке Аутентификация -> Пользователи.
И правило выглядит так
Мне нужно вернуть один документ, но каждый раз, когда я запрашиваю документы с этим пользователем, вошедшим в систему (для этих целей я использую angularfire2), я получаю Error: Missing or insufficient permissions.
Если я изменю условие правила, чтобы всегда возвращать true
или если я проверю только правильность request.auth.uid
, я получу результат запроса нормально. Самое смешное, что с участием resource.data
- например. проверка значения поля amount
в правиле firebase - условие никогда не выполняется. Я пытался написать это как
allow read, write: if resource.data.amount == 3
и снова получил ошибку. Кажется, я вообще не понимаю resource.data
карту.
Я чувствую, что упускаю что-то очевидное, хотя после прочтения руководств мне кажется, что это нормально, и у меня уже нет идей. Возможности отладки (или их отсутствие) делают весь процесс очень медленным.
Не могли бы вы объяснить мне, почему я не получаю resource.data
карту в правиле безопасности firebase или не указываю мне место, где может быть проблема?