Правила безопасности Google Cloud Firestore - правила для документа ID - PullRequest
0 голосов
/ 02 мая 2018

Если мы создадим новые идентификаторы документов на основе идентификатора пользователя Firebase Authentication (чтобы нам не нужно было запрашивать и получать документ непосредственно по известному идентификатору пользователя), можем ли мы создать правило безопасности, которое разрешало бы только пользователям, которые владельцы такого идентификатора пользователя Firebase Authentication для создания идентификатора документа с таким идентификатором пользователя? например;

We have two users as follows:-

Firebase user ID: AAA
Firebase user ID: BBB

Expected results from Firestore security rules

AAA creates document ID: AAA-1 - (ok)
AAA creates document ID: AAA-2 - (ok)
AAA creates document ID: BBB-1 - (not ok)
AAA creates document ID: XYZ-1 - (not ok)

BBB creates document ID: AAA-1 - (not ok)
BBB creates document ID: AAA-2 - (not ok)
BBB creates document ID: BBB-1 - (ok)
BBB creates document ID: XYZ-1 - (not ok)

Можем ли мы установить такое правило на Firestore?

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вы можете получить идентификатор целевого документа запроса с помощью request.resource.id в соответствии с документацией . Затем вы можете сравнить его с идентификатором пользователя запроса auth с чем-то вроде allow create: if request.resource.id == request.auth.uid, чтобы ограничить разрешение.

0 голосов
/ 28 июля 2018

Гораздо лучше добавить поле владельца в документ, которому вы назначаете идентификатор пользователя, который создал документ, а затем просто проверить это поле при обновлении, например.

allow update: if resource.data.owner == request.auth.uid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...