Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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
Android Firebase子节点公开_Android_Firebase_Firebase Realtime Database_Firebase Security - Fatal编程技术网

Android Firebase子节点公开

Android Firebase子节点公开,android,firebase,firebase-realtime-database,firebase-security,Android,Firebase,Firebase Realtime Database,Firebase Security,我只想公开注册函数的用户子项下的用户名节点。因此,非注册用户必须能够注册此值。这是我的firebase数据库结构。我该怎么做 这是我的规则 { "rules": { "Homeland": { ".indexOn": ["username","email","bakiyetl","yarismada","yarismad

我只想公开注册函数的用户子项下的
用户名
节点。因此,非注册用户必须能够注册此值。这是我的firebase数据库结构。我该怎么做

这是我的规则

{
  "rules": {
    "Homeland": {
       ".indexOn": ["username","email","bakiyetl","yarismada","yarismadabb","splashmesaj","uygulama1tut","uygulama2tut","uygulama3tut","uygulama4tut","uygulama5tut","uygulama6tut","uygulama7tut","uygulama8tut","uygulama9tut","uygulama10tut"]
        },     
    "gunluksifreler": {
      ".read": true, // <-- allows every person
      ".write": true
    },
      ".read": "auth !== null", // <-- allows read if logged in
      ".write": "auth !== null" // <-- allows write if logged in
  }
}

规则1:要能够读取位置或对位置运行查询,您必须能够读取该位置上的数据

知道了这一点,让我们看看:

Query cmyquery = refbir.child("Homeland").orderByChild("username")
此代码要求用户可以读取
Homeland
节点

这在文件中称为


规则2:您可以在JSON中的某个级别读取或写入数据,该权限不能在较低级别被剥夺

根据上述规则:用户可以读取和查询
Homeland
,他们可以读取它下面的所有数据。无法隐藏部分数据

这在文件中称为


常见的解决方案是按需要访问数据的人分割数据。因此,如果您只希望
username
属性值对每个人都可用,请创建一个顶级
usernames
节点,该节点下有相同的键,然后只创建该用户用户名的值。在新的
用户名
节点上,您可以授予比
本地
节点更自由的访问权限

Query cmyquery = refbir.child("Homeland").orderByChild("username")