Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向Firebase中的指定用户授予写入权限?_Firebase_Firebase Realtime Database_Firebase Authentication_Firebase Security - Fatal编程技术网

如何向Firebase中的指定用户授予写入权限?

如何向Firebase中的指定用户授予写入权限?,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,我有一个移动应用程序,可以从firebase服务器读取数据,而无需firebase登录/验证(帖子和新闻),我想创建一个管理员网页,在那里我可以登录、添加或修改新闻,因此我需要在那里获得写权限。我目前的规则是: { "rules": { ".read": true, ".write": "auth !== null && ????? } } 我可以写一些像“user.emailAddress==”这样的东西吗mail@example.com“?您可以在数

我有一个移动应用程序,可以从firebase服务器读取数据,而无需firebase登录/验证(帖子和新闻),我想创建一个管理员网页,在那里我可以登录、添加或修改新闻,因此我需要在那里获得写权限。我目前的规则是:

{
  "rules": {
    ".read": true,
    ".write": "auth !== null && ?????
  }
}

我可以写一些像“user.emailAddress==”这样的东西吗mail@example.com“?

您可以在数据库上创建用户表,如

{
  "users":{
     "your UID":{
        "isAdmin": true
      }
   }
}
然后编辑规则:

{
  "rules": {
    ".read": true,
    ".write": "auth.uid != null && root.child("users").child(auth.uid).isAdmin === true"
  }
}

您可能希望从阅读有关的文档开始。这里有很多要知道的

一种可能是使用已知用户的uid来限制访问。
auth.uid
变量包含uid

".write": "auth.uid == 'the-known-uid'"
您还可以使用访问有关用户的其他信息,包括电子邮件地址(可能不存在):

您还可以使用自定义身份验证令牌,这也是。

创建数据库:

   {
      "users":{
         "your UID":{
            "isAdmin": true
          }
       }
    }
设置规则:

错:

    {
      "rules": {
        ".read": true,
        ".write": "auth.uid != null && root.child("users").child(auth.uid).isAdmin === true"
      }
    }
对:

    {
      "rules": {
        ".read": true,
        ".write": "auth.uid != null && root.child('users').child(auth.uid).child('isAdmin').val() === true"
      }
    }
    {
      "rules": {
        ".read": true,
        ".write": "auth.uid != null && root.child('users').child(auth.uid).child('isAdmin').val() === true"
      }
    }