Wie kann ich eine Lücke machen einige Werte aus der Datenbank zu erhalten, aber die Datenbank-Änderungen dieser Daten jedes Mal nicht aktualisieren, ist dies die Leere Ich habe:Get Value aus der Datenbank ohne EvenListener
private void getUser() {
userInformationsList.clear();
DatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
FirebaseUser user = mAuth.getCurrentUser();
userID = user.getUid();
nameID = dataSnapshot.child("Users").child(userID).child("name").getValue(String.class);
Lat = dataSnapshot.child("Users").child(userID).child("Coordenates/Rute/Lat").getValue(String.class);
Lng = dataSnapshot.child("Users").child(userID).child("Coordenates/Rute/Lng").getValue(String.class);
DataSnapshot dS = dataSnapshot.child("Coordenate").child(Lat).child(Lng);
toolbar.setTitle(nameID);
for(DataSnapshot Ds : dS.getChildren()) {
Object key = Ds.getKey();
String StringKey = String.valueOf(key);
getname(StringKey);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(SearchActivity.this,"Error 404",Toast.LENGTH_SHORT).show();
}
});
}
Es funktioniert gut Wenn ich es anrufe, wird es ausgelöst, wenn die Datenbank geändert wird. Ich denke, weil die Leere onDataChange
oder ValueEventListener
ist.
Ich bin am Wandern, wenn es andere Methode gibt, den DataSnapshot aufzurufen.
Es funktioniert nicht, triggern immer noch jedes Mal, wenn die Daten geändert werden. –
Das scheint seltsam. 'addListenerForSingleValueEvent' feuert" sofort "für den aktuellen Wert und hört dann auf zu hören. Ich habe nie gesehen, dass es anders funktioniert, also ist es wahrscheinlich so, wie du es aufgebaut hast. Mit dem Code, den Sie freigegeben haben, wird der 'onDataChange' aufgerufen, wenn Sie' getUser' aufrufen. –
Weil ich es nicht aufrufen will, wenn eine Taste gedrückt wird, aber nicht wenn die Datenbank geändert wird. irgendeine Idee wie kann ich umsetzen? –