获取Firebase数据库Android中的最后一个节点

时间:2017-01-11 21:38:09

标签: android firebase firebase-realtime-database

我想从我的Android中获取firebase数据库中添加的最后一个节点中的项目。您可以在下面的图片中看到,我不知道如何获取特定节点,因为Firebase会创建唯一键。如何引用自动创建的节点和子进程?非常感谢

最后一个节点

enter image description here

4 个答案:

答案 0 :(得分:27)

试试这个:

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

希望这有帮助!

答案 1 :(得分:1)

我更喜欢通过对象编写和检索数据。 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());
    }
}

答案 2 :(得分:1)

试试这个会起作用  数据库参考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) {

           }``
       });;

答案 3 :(得分:0)

console.log('最后的消息',messages [messages.length-1]);