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