Как скрыть конкретный узел в базе данных Firebase в реальном времени - PullRequest
0 голосов
/ 22 мая 2019

У меня 2 вопроса, связанных с базой данных Firebase в реальном времени

Q1) Можно ли скрыть определенный узел от общего доступа, и только один человек имеет доступ к этому узлу?

(Я хочу сохранить ключ транзакции в базе данных, и только 1-2 человека могут получить доступ к этому ключу из базы данных.)

Q2) Если мои правила безопасности для базы данных установлены как общедоступные, может ли кто-либо загрузить / получить доступ к полным данным или они должны знать структуру для доступа к данным из базы данных.

1 Ответ

2 голосов
/ 22 мая 2019

A1 / Да, доступ к определенному узлу можно ограничить только подмножеством пользователей. Для этого есть несколько подходов. Если это небольшая и более или менее стабильная группа пользователей, вы можете проверить, содержится ли их uid в определенном узле, перечисляющем uid пользователей-администраторов, как показано ниже:

{
  "rules": {
    "secretnode": {
      //only an admin user can read
      ".read": "auth != null && root.child('adminusers/' + auth.uid).exists()"
    },
    "adminusers": {
        ".read": false,
        ".write": false
    },
    "othernodes": {
        ".read": true,
        ".write": true     
    }
  }
}

И, например, в базе данных вы сохраняете административные идентификаторы следующим образом:

DBRoot
   - adminusers
        - uid1
           - name: "aaaaaa"
           - otherDataItem: "xxxxxx"
        - uid2
           - name: "bbbbb"
           - otherDataItem: "yyyy"

A2 / Да, если ваши правила безопасности для базы данных root установлены как общедоступные, «любой (может) загрузить / получить доступ к полным данным». Обратите внимание, что, как объяснено в документации :

Мелкие правила безопасности переопределяют правила на более глубоких путях. Дочерние правила может только предоставить дополнительные привилегии тому, что родительские узлы объявлен. Они не могут отозвать право на чтение или запись.

Другими словами, это означает, что если ваши правила безопасности для базы данных root установлены как общедоступные, любой может загрузить полное дерево JSON, представляющее ваши данные, без необходимости знать его структуру.

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