谷歌如何获得事件更新上只有json树的一部分



假设我有一个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中的这个文件。

最新更新