Java 从Firebase获取最后(5或10)个值
我是Java 从Firebase获取最后(5或10)个值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我是Android新手,我想从FirebaseDatabase获取最后5或10消息 但结果它给了我NullPointerException Logcat 我的数据库结构是这样的吗 更新后 Log的结果 我认为你应该用Query来表示这个和那个 @Override public Query getQuery(DatabaseReference databaseReference) { // [START recent_posts_query]
Android
新手,我想从FirebaseDatabase
获取最后5
或10
消息
- 但结果它给了我
NullPointerException
Logcat
- 我的
数据库结构是这样的吗
更新后
Log的结果
我认为你应该用Query来表示这个和那个
@Override
public Query getQuery(DatabaseReference databaseReference) {
// [START recent_posts_query]
// Last 1000 posts, these are automatically the 1000 most recent
// due to sorting by push() keys
Query recentPostsQuery = databaseReference.child("posts")
.limitToLast(number of post you want);
// [END recent_posts_query]
return recentPostsQuery;
}
这将给你的职位数量有限,你给。
您可以从Firebase官方文档或其github repo获取更多信息
希望这会有所帮助……我认为你应该使用查询来查询这个和那个
@Override
public Query getQuery(DatabaseReference databaseReference) {
// [START recent_posts_query]
// Last 1000 posts, these are automatically the 1000 most recent
// due to sorting by push() keys
Query recentPostsQuery = databaseReference.child("posts")
.limitToLast(number of post you want);
// [END recent_posts_query]
return recentPostsQuery;
}
DatabaseReference messagesReference = FirebaseDatabase.getInstance().getReference().child("chat_rooms").child("tKyhXXAf6TQnQgKyAf23RJcwhsn1_S5ClzMeWUEXR9evLJO9CBd9ABCH3");
Query chatQuery = messagesReference.orderByChild("your key").limitToLast(5);
chatQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
//do what ever required
}
这将给你的职位数量有限,你给。
您可以从Firebase官方文档或其github repo获取更多信息
希望这对……有帮助
DatabaseReference messagesReference = FirebaseDatabase.getInstance().getReference().child("chat_rooms").child("tKyhXXAf6TQnQgKyAf23RJcwhsn1_S5ClzMeWUEXR9evLJO9CBd9ABCH3");
Query chatQuery = messagesReference.orderByChild("your key").limitToLast(5);
chatQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
//do what ever required
}
希望这有帮助。请试一试
希望这有帮助。请尝试。更新您的代码,如下所示:
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) {
}
});
更新您的代码,如下所示:
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) {
}
});
firebase中有limitTo你试过了吗?firebase中有limitTo你试过了吗?我也试过使用它,但它
返回null
@yashaswi我也更新了我的代码你能查看我的代码吗code@VishalYadav请检查编辑后的答案是否有空异常。我也尝试过使用这个,但是它返回null
@yashaswi我也更新了我的代码你能查看我的代码吗code@VishalYadav请检查编辑后的答案,查看您得到的空异常。已尝试,但给了我null
我不知道我错过了什么,但给了我null
我不知道我错过了什么
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) {
}
});