想象一下,我有一个或多或少看起来像这样的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中获取数据库实例后,如果只更改了“two”部分,我怎么才能收到更新。所以我想在“两个”部分同步并忽略对“一个”的更改。
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());
// ...
}
};
所以即时通讯我无法订阅只有“两个”事件的更改。我不知道如何设置事件监听器。
答案 0 :(得分:1)
您将侦听器附加到要侦听的节点:
DatabaseReference root = FirebaseDatabase.getInstance().getReference();
DatabaseReference sectionTwo = root.child("two");
sectionTwo.addValueListener(...
通过单击底部的链接,您可以轻松查看文档中的示例代码段如何工作。对于您从listening for value events上的部分复制的代码段,该链接指向this file in Github。