Android addChildEventListener与firebase规则混淆
我的firebase数据库有一个子项,即name is Messages,它有子项user_id,还有子项title和timestamp,例如: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数据库
- 信息
- 用户uid\u 1
- 头衔
- 时间戳
- 用户uid\u 2
- 用户uid\u 3
- 用户uid\u 1
- 信息
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”}}