Wie Kind von Kind Wert von Firebase in Android bekommen?
Wie erhalten Sie ZNAME-Wert? Zuerst muss ich den Schlüssel vergleichen (Ex :: Here ZONE_1) und dann muss ZNAME get werden. Vielen Dank im Voraus ...
Wie Kind von Kind Wert von Firebase in Android bekommen?
Wie erhalten Sie ZNAME-Wert? Zuerst muss ich den Schlüssel vergleichen (Ex :: Here ZONE_1) und dann muss ZNAME get werden. Vielen Dank im Voraus ...
Um auf einen Wert in Ihrer Datenbank zuzugreifen, erstellen Sie einen DatabaseReference
für diesen Speicherort. Hier sind drei Hinweise auf Standorte in Ihrer Datenbank:
DatabaseReference zonesRef = FirebaseDatabase.getInstance().getReference("ZONES");
DatabaseReference zone1Ref = zonesRef.child("ZONE_1");
DatabaseReference zone1NameRef = zone1Ref.child("ZNAME");
In diesem Snippet:
zonesRef
Punkte /ZONES
zone1Ref
Punkte /ZONES/ZONE_1
zone1NameRef
Punkte /ZONES/ZONE_1/ZNAME
Weitere Informationen finden Sie unter Firebase documentation on getting a database reference.
Sie können jeder Referenz einen Listener hinzufügen, um den Wert an dieser Position zu ermitteln.
zone1NameRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
Weitere Informationen zu dieser Art von Lesevorgang finden Sie in der Firebase documentation on reading values: Zum Beispiel, um den Wert des /ZONES/ZONE_1/ZNAME
zu erhalten.
Wenn Sie stattdessen auf /ZONES/ZONE_1
hören, erhalten Sie eine DataSnapshot
des gesamten Knotens mit all seinen Eigenschaften. Sie dann DataSnapshot.child()
verwenden, um die ZNAME
davon zu bekommen:
zone1Ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.child("ZNAME").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
Eine weitere Ebene, können Sie auf /ZONES
hören, die Sie mit allen Zonen eine Momentaufnahme erhalten. Da diese mehrere Kinder behandelt, müssen Sie durch sie in einer Schleife mit DataSnapshot.getChildren()
:
zonesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
Denn auf diese mehr, die Firebase documentation on listening for lists of data sehen.
Schließlich könnten Sie eine bestimmte Zone zu finden, zum Beispiel abfragen möchten die Zone mit "ZCODE": "ECOR"
zu finden:
Query zonesQuery = zonesRef.orderByChild("ZCODE").equalTo("ECOR");
zonesQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
Um mehr darüber zu erfahren, lesen Sie die Firebase documentation on sorting and filtering data.
Irgendwelche Codes bis jetzt? Verwenden Sie einfach 'child()' zweimal auf jeder Datenbank Referenz –