Получить последний узел в базе данных Firebase Android
Я хочу получить элемент в последнем узле, добавленном в базу данных firebase с моего Android. Вы можете видеть на изображении ниже, я не уверен, как получить конкретный узел, потому что уникальный ключ создается Firebase. Как ссылаться на автоматически созданный узел и дочерний внутри? Большое спасибо
последний узел
3 ответов
попробуйте это:
DatabaseReference databaseReference = Firebase.getInstance().getReference();
Query lastQuery = databaseReference.child("mp").orderByKey().limitToLast(1);
lastQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String message = dataSnapshot.child("message").getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
//Handle possible errors.
}
});
надеюсь, что это помогает!
попробуйте это будет работать
База данных ссылка db;
db=FirebaseDatabase.getInstance().getReference().child("mp");
Query query = db.orderByKey().limitToLast(1);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
Log.d("User key", child.getKey());
Log.d("User val", child.child("message").getValue().toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}``
});;
Я предпочитаю записывать и извлекать данные через объекты. MyObject-это POJO.
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
MyObject myObject = data.getValue(MyObject.class);
Log.i(TAG, data.getKey() + " = " + myObject.toString());
}
}