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, представляющее ваши данные, без необходимости знать его структуру.