Правила Firestore: небезопасное уведомление правила для создания пользователя из-за (рекомендуемой) единой проверки на request.auth.uid - PullRequest
0 голосов
/ 03 июля 2019

Я хочу установить правила безопасности в пользовательских документах моей БД.В частности, для создания пользователя.

Согласно документации , вы можете написать:

match /users/{user} {
    allow create: if request.auth.uid != null
                            //  && other booleans to validate data

Но, согласно документации снова, запись только request.auth.uid != null без каких-либо других логических значений, касающихся этого значения или роли, делает это правило «небезопасным».Действительно:

Когда вы проверяете аутентификацию, вы также можете использовать одно из свойств аутентификации, чтобы дополнительно ограничить доступ определенных пользователей для определенных наборов данных.Подробнее о добавлении условий безопасности и доступа на основе ролей.

Конечно, в случае создания пользователя это не представляется возможным.

Однако FirestoreПравила безопасности отправят мне уведомление о том, что существует хотя бы одно небезопасное правило: это.

Как мне справиться с этой «проблемой»?

1 Ответ

1 голос
/ 04 июля 2019

Я думаю, что ваша проблема может быть решена, и ваше правило пожарного депо может быть улучшено одновременно.

Просто добавьте условие, чтобы проверить, существует ли currentUser, который добавляет newUser, уже вusers коллекция.

Вы можете улучшить то же самое, проверив, обладает ли currentUser необходимыми привилегиями для добавления нового user, если вы хотите, чтобы только определенный набор привилегированных пользователей мог создавать новых пользователей.

Надеюсь, это поможет.

...