#firebase #google-cloud-firestore #firebase-security
#firebase #google-облако-firestore #firebase-безопасность
Вопрос:
У меня есть следующая архитектура в моих данных :
roles :
0 :
id : xxx
name : xxx
1 :
id : xxx
name : xxx
Мне нужно правило, которое позволяет мне проверять, равен ли идентификатор пользователя одному из идентификаторов в массиве ролей, у кого-нибудь есть идея?
Спасибо и хорошего дня !
Ответ №1:
Это невозможно с данными, структурированными таким образом.
Одним из вариантов является дублирование значений «id» в поле массива, которое содержит только эти строки.
roleIds:
0: id-string-0
1: id-string-1
Затем, чтобы проверить, есть ли id
в этом списке, вы можете использовать hasAny:
allow read: if resource.data.roleIds.hasAny([id]);
Комментарии:
1. Итак, решением было бы создать два списка, один с идентификаторами, а другой с именами?
2. Вы могли бы сделать это, если вам также нужны имена. Я показываю только строки идентификаторов, потому что они требуются для ваших правил.