Правило безопасности базы данных Firebase в реальном времени получает дочернее имя - PullRequest
0 голосов
/ 14 марта 2019

Есть ли способ узнать имя ребенка?Структура выглядит примерно так:

appointment-
           |- "here_is_some_date"-
                                 |-"some_user_id"-
                                                 |-details about it

Мне нужно определить правило для тех, кто может читать «встречи», но я не уверен, как получить имя даты, чтобы я мог получить UID.Вот что я пробовал:

"appointments": {
        ".read": "data.child(data.val()).child(auth.uid).val() === auth.uid"
      }

1 Ответ

1 голос
/ 14 марта 2019

Единственный способ прочитать значение дочернего узла в правилах безопасности Firebase, если вы знаете точный путь от текущего узла (где определено правило) к дочернему узлу.

Таким образом, если вы знаете и дату, и UID (что вы определенно делаете), вы можете прочитать значение дочернего узла с помощью:

"appointments": {
  ".read": "data.child('here_is_some_date').child('some_user_id').val() === auth.uid"
}

Но нет никакого способаесть подстановочный знак на этом пути.Сложно сказать, какой вариант использования вы точно пытаетесь реализовать, но если он «позволяет пользователю прочитать даты встреч, на которые у него есть встреча», то для этого потребуется дополнительная инвертированная структура данных:

"user_appointment_dates": {
  "uid1": {
    "date1": true // or a more complete structure with the actual appointments
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...