Правила Firestore - разрешить обновление только для одного поля - PullRequest
0 голосов
/ 05 июня 2019

У меня есть следующие правила для моей коллекции пользователей в моем firestore. Я стремлюсь к тому, чтобы пользователь мог только обновить поле имени своего соответствующего пользовательского документа. Я проверил это на симуляторе правил, имеющем данные с полезной нагрузкой объекта с единственным ключом name. Однако запрос отклонен.

К сожалению, я не могу отладить ценность ресурсов, поэтому я не могу понять, почему это отказано?

match /users/{user} {
    allow read;
    allow write: if user == request.auth.uid 
                 && request.resource.data.keys().hasOnly(["name"]);
}

Я попытался закомментировать условие && request.resource.data.keys().hasOnly(["name"]);, и он разрешил обновление, поэтому проблема не в request.auth.

Я думаю, что это может быть проблема с обновлением и использованием request.resource.data, но в симуляторе нет опции для отправки set запроса.

Какие правила я могу написать, кроме того, что позволяет update, только если он имеет ключи name?

...