Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Firebase获取最后(5或10)个值_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

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) {

        }
    });