Android 获取Firebase数据库中的最后一个节点
我想从我的Android中获取firebase数据库中添加的最后一个节点中的项。您可以在下图中看到,我不确定如何获取特定节点,因为unique key是由Firebase创建的。如何在内部引用自动创建的节点和子节点?非常感谢 最后一个节点 试试这个:Android 获取Firebase数据库中的最后一个节点,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想从我的Android中获取firebase数据库中添加的最后一个节点中的项。您可以在下图中看到,我不确定如何获取特定节点,因为unique key是由Firebase创建的。如何在内部引用自动创建的节点和子节点?非常感谢 最后一个节点 试试这个: DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference(); Query lastQuery = databaseReference.chi
DatabaseReference databaseReference = FirebaseDatabase.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.
}
});
希望这有帮助 我更喜欢通过对象写入和检索数据。 我的对象是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());
}
}
这可能会奏效:
DatabaseReference 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) {
// TODO: Handle errors.
}
});
console.log('last messages',messages[messages.length-1]) 将该行更改为以下内容:
String message=dataSnapshot.child(“message”).getValue().toString()代码>@koceeng对不起!我忘了,你完全正确。我改变了答案!它起作用了!!我不得不将我的代码从orderByChild()更新为orderByKey(),以获得听到@Billyjoker的真好!下面是firebase数据库的一个好例子