Я пытаюсь получить "статус" поездки, который в настоящее время находится в моем узле "History", но сначала мне нужно было получить "rideKey".
Глобальные переменные: String rideKey, String key.
Узел истории:
{
"History" : {
"-LGXaukR30LTjrL3ZNpt" : {
"driver" : "ptnVOKounjXE9VrmZCCvKoZWluf1",
"rating" : 0,
"ridePrice" : 5.25,
"rider" : "C0RjB5NPZcTvWz9XiUAhpTDOK0C2",
"status" : "accepted",
"timestamp" : 1530662726
}
}
}
Чтобы получить код поездки, я сделал это:
DatabaseReference keyRef = FirebaseDatabase.getInstance().getReference("History");
keyRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
rideKey = String.valueOf(mDatabase.child("History").push().getKey());
Log.d(TAG, "getKey: key = " + rideKey);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
Это дает мне все ключи в истории, как я могу получить самые последние?
Теперь мне также нужно получить «статус» запроса.
Но, когда я пытаюсь получить статус, он продолжает обнуляться.
Я попытался поместить другой ValueEventListener в событие значения rideKey, но все еще null
Есть идеи, что я делаю не так?
Очень ценится.
РЕДАКТИРОВАТЬ
Log.e(TAG, "I made it to getKeyAndStatus");
DatabaseReference keyRef = FirebaseDatabase.getInstance().getReference("History");
keyRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
**// Log.e(TAG, "I made it to getKeyAndStatus: onDataChange");**
Iterable<DataSnapshot> children = dataSnapshot.child("History").getChildren();
for (DataSnapshot child : children){
Log.d(TAG, "getKey: key = " + child.getKey());
Ride ride = child.getValue(Ride.class);
Log.e(TAG, "ride = " + ride);
Log.d(TAG, "Driver = " + ride.getDriver());
Log.d(TAG, "Rating = " + ride.getRating());
Log.d(TAG, "Rider = " + ride.getRider());
Log.d(TAG, "Price = " + ride.getRidePrice());
Log.d(TAG, "status = " + ride.getStatus());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Приведенный выше код делает это только до журнала "Я сделал это для getKeyAndStatus: onDataChange"
РЕДАКТИРОВАТЬ - Результаты
![results](https://i.stack.imgur.com/dGybC.png)