Ich habe ein Problem mit Firebase Realtime Database in meiner Android App.ValueEventListener ausgelöst OnDataChange Methode nur einmal
Was ich versuche ist, die Liste in Echtzeit zu aktualisieren. Aber das Update funktioniert nur beim Start der App. Es wird nicht automatisch aktualisiert. Also muss ich die App immer neu starten, wenn sie aktualisiert werden soll.
Gibt es fehlende Teile? Ich schätze für jede Hilfe. Danke
Problem: Listener ausgelöst onDataChange
Methode nur in App Neustart. Daten sind korrekt. Aber der Zuhörer funktioniert danach nicht.
Code:
mRef = FirebaseDatabase.getInstance().getReference();
mPostRef = mRef.child(DbUtils.POST_CHILD);
mPostRef.keepSynced(true);
mPostRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Post> objList = new ArrayList<>();
for(DataSnapshot objSnapShot: dataSnapshot.getChildren()){
Post obj = objSnapShot.getValue(Post.class);
obj.setKey(objSnapShot.getKey());
objList.add(obj);
}
mAdapter.addAllAndNotify(objList);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("Posts", "Listener was canceled");
}
});
Sind Sie sicher, dass sich die Daten ändern? Versuchen Sie, die Firebase-Konsole zu verwenden, um die Daten zu ändern. Ich habe Ihren Code mit Version 10.0.1 ausgeführt und onDataChange() wird ausgelöst, wenn sich die Daten ändern. –
Ich habe Daten in der Konsole geändert. Code funktioniert nicht. Werden Ihre Daten bei jedem Wechsel aktualisiert? (Ich benutze 9.8.0, versuche mit 10.0.1). Danke für Ihre Hilfe. –
Fügen Sie 'onDataChange()' 'eine' Log'-Anweisung hinzu, um zu sehen, wann der Callback ausgelöst wird. –