我是 Android
的新手,我想从 获取最后的
。我试过使用它。5
或 10
messages
FirebaseDatabase
ChatInteractor.databaseReference.orderByKey().startAt(10).endAt(20).addListenerForSingleValueEvent((ValueEventListener) ActivityChatView.this);
- 但结果是
NullPointerException
。 Logcat
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.Query com.google.firebase.database.DatabaseReference.orderByKey()' on a null object reference
- 我的
DatabaseStructure
是这样的
更新
之后
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReferenceFromUrl("https://afdbjkaffirebaseio.com/");
Query query=databaseReference.child(Constants.ARG_CHAT_ROOMS).orderByChild("tKyhXXAf6TQnQgKyAf23RJcwhsn1_S5ClzMeWUEXR9evLJO9CBd9ABCH3").limitToLast(2);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot:dataSnapshot.getChildren()){
Chat chat=snapshot.getValue(Chat.class);
Log.e("163","ACV"+chat.fromEmail);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log
的结果
E/163: ACVnull
最佳答案
如下所示更新您的代码:
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference();
Query query=databaseReference.child(Constants.ARG_CHAT_ROOMS).child("tKyhXXAf6TQnQgKyAf23RJcwhsn1_S5ClzMeWUEXR9evLJO9CBd9ABCH3").orderByChild().limitToLast("Number of last messages you want to show");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot:dataSnapshot.getChildren()){
Chat chat=snapshot.getValue(Chat.class);
Log.e("163","ACV"+chat.fromEmail);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
关于java - 从 Firebase 获取最后(5 或 10)个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46440115/