首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于管理员的Firebase安全规则是只读的,即使它们设置为false

用于管理员的Firebase安全规则是只读的,即使它们设置为false
EN

Stack Overflow用户
提问于 2018-05-30 09:01:34
回答 1查看 798关注 0票数 1

我的应用程序中有一个节点,用户可以对其进行写入,但不能对其进行读取。

代码语言:javascript
复制
let specialNodeRef = dbRef.child("specialNode").childByAutoId()
specialNodeRef.updateChildValues(dict)

有没有一种方法可以设置规则,使只有管理员可以从该节点读取,即使在使用控制台之外将规则设置为false?

代码语言:javascript
复制
{
  "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"
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 09:08:57

运行Firebase Admin SDK或通过Firebase控制台访问数据库的用户使用管理权限访问数据库。它们始终可以读/写,因此不受".read": false的影响。

如果要将应用程序的一个/某些用户声明为具有特定权限,则可以在规则中包括他们的Firebase身份验证UID:

代码语言:javascript
复制
".read": "auth.uid = 'uidOfLance'"

更灵活的做法是将每个这样的用户的UID以如下形式存储在数据库中:

代码语言:javascript
复制
"admins": {
  "uidOfLance": true,
  "uidOfPuf": true
}

然后,您可以在安全规则中检查UID:

代码语言:javascript
复制
".read": "root.child('admins').child(auth.uid).exists()"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档