Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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 addChildEventListener与firebase规则混淆_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android addChildEventListener与firebase规则混淆

Android addChildEventListener与firebase规则混淆,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我的firebase数据库有一个子项,即name is Messages,它有子项user_id,还有子项title和timestamp,例如: 我的firebase数据库 信息 用户uid\u 1 头衔 时间戳 用户uid\u 2 用户uid\u 3 我想为消息添加addChildEventListener,以确定消息中是否有任何更改。使用此代码非常容易: myRef.child("Messages").addChildEventListener(new ChildEvent

我的firebase数据库有一个子项,即name is Messages,它有子项user_id,还有子项title和timestamp,例如:

  • 我的firebase数据库

    • 信息
      • 用户uid\u 1
        • 头衔
        • 时间戳
      • 用户uid\u 2
      • 用户uid\u 3
我想为消息添加addChildEventListener,以确定消息中是否有任何更改。使用此代码非常容易:

myRef.child("Messages").addChildEventListener(new ChildEventListener()...
firebase规则怎么样。如果我把它公之于众,它就会起作用。但是,如果我真的喜欢那个不工作的孩子,我应该在我的规则中添加什么呢

{
  "rules": {    
   "Messages":{
       "$uid":{
            ".read": "data.child('timestamp').val() > (now - 18000000)",
            ".write": "auth != null"
   }
  },
   "$other":{
     ".read": true,
     ".write": "auth != null"
   }  
}
}
我想只读过去30分钟的消息,这样我就添加了“.read”:“data.child('timestamp').val()>(现在为-18000000)”

我想我应该在“Messages”和“$uid”之间添加一些内容,以便正确地添加Child listener。
thnks

Firebase安全规则在连接侦听器时强制执行。如果您允许读取
/Messages/$uid
,则
/Messages
上的侦听器将被拒绝,因为您没有该级别的读取权限


这在Firebase文档中称为,意味着您不能使用安全规则来过滤数据。这里已经讨论了很多关于堆栈溢出的内容,所以我建议您查看一些。我能找到的最古老的答案是。

因此,Puffen您说我应该添加两个消息节点,第一个用于Childlistener,第二个用于如果message1发生更改,它将根据时间戳从Message2 0获取数据。{“规则”:{“Message1”:{“$uid”:{.read”:“data.child('tarih').val()>(现在为-1800000)”,“.write”:“auth!=null”}},Message2:{.read:$true,},“$other”:{.read:$true,”.write:“auth!=null”}}