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 Security - Fatal编程技术网

我的应用程序的Firebase规则存在混乱

我的应用程序的Firebase规则存在混乱,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我在编写firebase权限时遇到问题。我希望那些经过身份验证的用户只写到用户部分,而其他所有人都应该能够读或写到数据库的任何部分。是否有任何方法可以为每个表定义默认为true的规则,并限制只对用户部分进行身份验证,或者我必须为每个表显式地编写规则 附言:如果有人能指导我,我应该为具有以下结构的发送和接收消息功能的应用程序实施哪些规则,那就太好了: -聊天 -朋友 -使用者 -消息通知 /* Visit https://firebase.google.com/docs/database/se

我在编写firebase权限时遇到问题。我希望那些经过身份验证的用户只写到用户部分,而其他所有人都应该能够读或写到数据库的任何部分。是否有任何方法可以为每个表定义默认为true的规则,并限制只对用户部分进行身份验证,或者我必须为每个表显式地编写规则

附言:如果有人能指导我,我应该为具有以下结构的发送和接收消息功能的应用程序实施哪些规则,那就太好了:

-聊天

-朋友

-使用者

-消息通知

  /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
  "rules": {

      "Users":{
      "$uid":{
            ".read": true,
             ".write": "auth.uid == $uid"
      }
    }

  }

}
-信息

-通知

  /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
  "rules": {

      "Users":{
      "$uid":{
            ".read": true,
             ".write": "auth.uid == $uid"
      }
    }

  }

}
是否有任何方法可以为每个表定义默认为true的规则,并限制只对用户部分进行身份验证

一旦用户可以访问数据库中某一级别的数据,他们就可以访问该级别下的所有数据。不能在较低级别上撤消此权限。因此,无法让用户访问根目录下的所有数据,然后排除一个节点

您可以使用$wildcard规则创建两种类型的顶级节点:

{
  "rules": {
    "Users":{
      "$uid":{
        ".read": true,
         ".write": "auth.uid == $uid"
      }
    },
    "$others": {
      ".read": true,
      ".write": true
    }
  }
}
根据上述规则,用户可以:

仅当用户知道该用户的uid时,才读取该用户的/Users/$uid节点。 只能写入自己的/Users/$uid节点。 可以读取和写入所有其他数据。