web-dev-qa-db-fra.com

Obtenir le dernier noeud dans la base de données Firebase Android

Je veux obtenir l'élément dans le dernier nœud ajouté dans la base de données firebase à partir de mon Android. Vous pouvez voir sur l'image ci-dessous que je ne sais pas comment obtenir le nœud spécifique, car la clé unique est créée par Firebase. Comment faire référence à un noeud créé automatiquement et à un enfant à l'intérieur? Merci beaucoup 

Le dernier noeud

 enter image description here

8
Katz

Essaye ça:

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

J'espère que cela t'aides!

25
rodrigoehlers

Essayez ça va marcher
Base de données de référence 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) {

           }``
       });;
1
Anirudh Varshney

Je préfère écrire et récupérer des données via des objets . MyObject est 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());
    }
}
1
tim4dev