Правила безопасности Firestore: сравните массивы карты - PullRequest
0 голосов
/ 28 сентября 2019

Я пишу правила безопасности для пользователя.И я хочу, чтобы пользователи могли обновлять только определенные части в своем профиле, такие как страна, город, улица, имя, фамилия.Но я хочу ограничить их доступ к обновлениям обзоров (которые представляют собой массив карт) о них.Довольно легко проверить, пытается ли пользователь перезаписать простые значения полей, но возможно ли как-то сравнить массивы карты?Одним из способов ограничения доступа пользователей было бы создание другой коллекции для обзоров, но я бы предпочел хранить ее в одном месте, чтобы избежать дополнительных чтений.Я понимаю, что сравнение массивов карты может быть слишком сложным для пожарного магазина, но я хочу убедиться, возможно ли это.

Что-то вроде:

match /users/{userId} {
  allow update: if isAuthorized() && request.resource.data['reviews'] == resource.data['reviews'];}

Модель БД

...