假设我有一个firebase json树,它或多或少看起来像这样:
//ignore poorly nested structure as this is an example
{
"chats": {
"one": {
"title": "Historical Tech Pioneers",
"messages": {
"m1": { "sender": "ghopper", "message": "Relay malfunction found. Cause: moth." },
"m2": { ... },
// a very long list of messages
}
},
"two": { ... }
}
}
现在在firebase中,当我得到数据库的实例后,我如何才能仅在section"2"被更改时接收更新。所以我想同步部分"二",忽略"一"的变化。
Firebase有一个ValueEventListener类,我可以使用它看起来像这样:
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post post = dataSnapshot.getValue(Chats.class);
// ...this gets me the entire Chats object, i just needs the "two" object
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
};
所以我有麻烦,我如何才能订阅更改只有"两个"事件。我不知道如何设置事件监听器
将侦听器附加到要侦听的节点:
DatabaseReference root = FirebaseDatabase.getInstance().getReference();
DatabaseReference sectionTwo = root.child("two");
sectionTwo.addValueListener(...
通过单击文档底部的链接,您可以很容易地看到文档中的示例片段是如何工作的。对于您从侦听值事件一节复制的代码片段,它链接到Github中的这个文件。