Firebase 侦听器会触发初始数据和任何更改。
如果您希望同步集合中的数据,请使用ChildEventListener
. 如果您要同步单个对象,请使用ValueEventListener
. 请注意,在这两种情况下,您都没有“获取”数据。您正在同步它,这意味着可能会多次调用回调:对于初始数据以及每当数据更新时。
Firebase 的 Android 快速入门指南对此进行了介绍。相关代码和报价:
FirebaseRef.child("message").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println(snapshot.getValue()); //prints "Do you have data? You'll love Firebase."
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
在上面的示例中,value 事件将针对数据的初始状态触发一次,然后在每次该数据的值更改时再次触发。
请花一些时间来完成该快速入门。它不应该花费超过 15 分钟,它可以让你免于许多头疼和问题。Firebase Android 指南可能是一个很好的下一个目的地,专门针对这个问题:https : //firebase.google.com/docs/database/android/read-and-write