如何在Firebase中将一个用户设置为管理员?

问题描述 投票:0回答:1

我有用户数据库,我希望每个经过身份验证的用户都可以在其中读取和更新自己的数据。我还想设置一个管理员用户,该用户可以读取和更新数据库中所有用户的数据。

我尝试这样做-How to only allow one admin user to write Firebase Database?

但是效果不佳。

我的数据库结构是:

- Users
   -key1
     -email: xyz
   -key2
     -email: abc

这是我尝试过的。在这里,我在Firebase身份验证中添加了管理员用户,他的身份验证ID为-s94ZwBcP但是,我在该用户的数据库中没有任何密钥(因为我不需要它)。

"rules": {
     "users":{
       "$uid":{
         ".read" : "$uid == auth.uid || auth.uid === 's94ZwBcP'", 
         ".write": "$uid == auth.uid || auth.uid === 's94ZwBcP'"
      }
     }
firebase-realtime-database firebase-security-rules
1个回答
0
投票

我的猜测是您正在尝试从/users中读取内容。由于.read上没有定义/users规则,因此没有人可以读取该节点。

为了允许管理员获取(和修改)所有用户的列表,请将您的规则修改为:

"rules": {
  "users":{
    ".read" : "auth.uid === 's94ZwBcP'", 
    ".write": "auth.uid === 's94ZwBcP'",
    "$uid":{
      ".read" : "$uid == auth.uid", 
      ".write": "$uid == auth.uid"
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.