Получить последний узел в базе данных Firebase Android

Я хочу получить элемент в последнем узле, добавленном в базу данных firebase с моего Android. Вы можете видеть на изображении ниже, я не уверен, как получить конкретный узел, потому что уникальный ключ создается Firebase. Как ссылаться на автоматически созданный узел и дочерний внутри? Большое спасибо

последний узел

enter image description here

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());
    }
}