Ich baue eine App, die im Grunde eine Tabelle für Fußball ist, die jedes Mal aktualisiert, wenn ich es in meiner DB ändere.Abrufen des relevanten Schlüssels von ValueEventListener
Ich benutze Firebase auf diese Weise:
Ich versuche, eine addValueEventListener
zu verwenden, aber ich weiß nicht, welcher der Werte der ist, der (dif ändert, Punktzahl, Punkte ...) daher nicht, welches Feld in meiner Tabelle ich aktualisieren soll.
public class table extends AppCompatActivity {
Button insert;
TextView name, games, win, lost, tie, score, dif, points;
Team A;
DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference FootballRef = mRootRef.child("Football");
DatabaseReference HouseARef = FootballRef.child("HouseA");
protected void onStart() {
super.onStart();
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
String key = dataSnapshot.getKey() ;
Toast.makeText(table.this,key, Toast.LENGTH_SHORT).show();
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
// ...
}
};
HouseARef.addValueEventListener(postListener);
}
}
Sehen Sie hier, wenn wir sagen, dass ich den Namen housaA
bin zu aktualisieren, ich möchte den Schlüssel zurück zu bekommen, die aktualisiert wurde (in meinem Fall, name
), aber wenn ich mit dataSnapshot.getKey()
der Toast Ich bekomme zurück ist HouseA
und nicht name
.
Sie haben ein Bild des JSON Baum, die in Ihrem Frage. Bitte ersetzen Sie dies durch den tatsächlichen JSON als Text, den Sie einfach erhalten, indem Sie in der Firebase-Datenbankkonsole auf die Schaltfläche "Exportieren" klicken. Da der JSON als Text durchsuchbar ist, können wir ihn einfach verwenden, um mit Ihren tatsächlichen Daten zu testen und sie in unserer Antwort zu verwenden, und im Allgemeinen ist dies nur eine gute Sache. –