Правила базы данных Firebase - подстановочный знак для ключа Dynami c - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть этот сценарий использования, в котором я хочу дать разрешение другим пользователям читать данные под моим ключом ID, только если есть ключ === к их идентификатору.

Допустим, у меня есть пользователи 123 и 456, которые записывает json объект в «

orders-
              I
               -123
                        I
                         -456

» И я хочу, чтобы только пользователи 123 и 456 могли читать 456 узлов. С правилами, которые я предоставляю, только 123 могут прочитать узел:

"orders": {
    "$uid": {
        ".read": "auth.uid  === $uid || root.child('orders').child($uid).child(auth.uid).exists()",
        ".write": "auth.uid != null",
    }
}

Что я здесь не так делаю? Может ли кто-нибудь помочь мне с этим, пожалуйста?

РЕДАКТИРОВАТЬ: два скриншота симулятора

enter image description here

enter image description here

1 Ответ

0 голосов
/ 17 февраля 2020

Я решил, установив эти правила (заметьте, что $ id вложен в $ uid):

{
  "rules": {
          "orders": {
          "$uid": {
            ".read": "auth.uid  === $uid",
        ".write": "auth.uid === $uid",
          "$id": {
            ".read": "auth.uid  === $id",
            ".write": "auth.uid === $id"
          },
          }
        }
  }
}

Ранее я думал, что эта строка должна работать:

 ".read": "auth.uid  === $uid || root.child('orders').child($uid).child(auth.uid).exists()",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...