有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在RecyclerView滚动上下载更多Firebase对象?

我有一个以聊天室为特色的应用程序。每个房间都有一个ID作为数据库参考,消息从那里被带下来并显示在RecyclerView中。我知道如何使用Query增加创建/onStart时下载的消息数量。orderbykey()。limittolast(),但当用户滚动到聊天活动的RecyclerView顶部时,如何下载和显示其他项目,这是一个Facebook messenger

编辑:这是我的适配器的构造函数0r:

public ChatRecyclerViewAdapter(Context mContext, ArrayList<String> mMessage, ArrayList<String> mAuthor, String mRoomID, DatabaseReference reference) {
    this.mContext = mContext;
    this.mRoomID = mRoomID;
    numberOfRecentMessages=20;

    messageList = new ArrayList<>();
    mDatabaseReference = reference.child(mRoomID+"_messages");
    recentMessages = mDatabaseReference.orderByKey().endAt(100).limitToLast(numberOfRecentMessages);
    recentMessages.addChildEventListener(mListener);

}

共 (1) 个答案

  1. # 1 楼答案

    听起来像是在寻找endAt(),它需要返回最后一项的键。假设您当前正在显示这些键:

    key20
    key21
    key22
    key23
    key24
    key25
    key26
    key27
    key28
    key29
    

    然后,您可以通过以下方式获取之前的项目:

    ref.orderByKey().endAt("key20").limitToLast(11)