Правила безопасности Firebase для администратора только для чтения, даже если они установлены в false - PullRequest
0 голосов
/ 30 мая 2018

В моем приложении есть узел, в который пользователи могут писать, но не могут читать.

let specialNodeRef = dbRef.child("specialNode").childByAutoId()
specialNodeRef.updateChildValues(dict)

Есть ли способ установить правила, чтобы только администратор мог читать с этого узлахотя правила установлены в ложь вне использования консоли?

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    },
    "specialNode": {
        ".read": false, // users can't read but admin can
        ".write": "auth.uid != null"
    }
  }
}

1 Ответ

0 голосов
/ 30 мая 2018

Пользователи, использующие Firebase Admin SDK или имеющие доступ к базе данных через консоль Firebase, получают доступ к базе данных с правами администратора.Они всегда могут читать / писать, поэтому ".read": false.

на них не влияет. Если вы хотите объявить одного / некоторых пользователей вашего приложения как обладающих определенными привилегиями, вы можете включить их UID аутентификации Firebase вправила:

".read": "auth.uid = 'uidOfLance'"

Немного более гибким является сохранение UID каждого такого пользователя в базе данных в такой форме:

"admins": {
  "uidOfLance": true,
  "uidOfPuf": true
}

Затем вы можете проверить UID вваши правила безопасности:

".read": "root.child('admins').child(auth.uid).exists()"
...