Проверка наличия элемента в подколлекции для правил безопасности Firebase - PullRequest
2 голосов
/ 26 октября 2019

У меня проблема с симулятором правил безопасности Firebase, где я не могу прочитать, существует ли поле. Моя структура выглядит следующим образом, где мета - это подгруппа команд, и каждая команда находится в коллекции команд.

{
  "teams": {
    <TEAM_ID>" {
      "name": "Team One"
      "meta": {
        "users": [<SOME USER UID>],
        "admins": [<SOME UID>]
      }
    }
  }
}

По сути, я хочу, чтобы они могли читать, только если в meta.users есть идентификатор пользователя.

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /teams/{teamId} {
     allow read: if exists(/databases/$(database)/documents/teams/$(teamId)/meta/users/$(request.auth.uid))
   }
  }
}

Но приведенные выше правила возвращают следующую ошибку.

Ошибка запуска симуляции - Ошибка: строка simulator.rules [5], столбец [21]. Ошибка функции не найдена: Имя: [существует].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...