Как сделать страничку чата Firbase? - PullRequest
0 голосов
/ 20 февраля 2019

Я столкнулся с проблемой при получении списка из базы данных Firebase. У меня не было подхода.

Требование - получить список чата Firebase от Db с нумерацией страниц

1 Ответ

0 голосов
/ 20 февраля 2019

Здесь я сделал Firebase-Chat-Pagination.Проверьте это. Это может помочь.onDataChange (DataSnapshot dataSnapshot) {// Значение должно быть нулевым, когда новое сообщение отправлено собственным mLastDataSnapshot = null; if (dataSnapshot.exists ()) {mChatList.clear (); для (DataSnapshot readDataSnapshot: dataSnapshot.getChildrenpon) ()chatModel = readDataSnapshot.getValue (ChatResponse.class); if (chatModel! = null) {mChatList.add (chatModel);} // Нам нужен первый DataSnapshot для разбиения на страницы, если (mLastDataSnapshot == null) {mLastDataSnapshot = readDataSnapshot = readData*

                    }
                    mView.onFetchMessagesSuccess(mChatList);
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

}

public void loadMoreDataPagination () {

if (mLastDataSnapshot != null && (mTotalCount == 0 || mView.getChatMessageCount() < mTotalCount)) {
    mUserRefValueEventListener = mConversationRef.child(mLocation)
            .orderByKey()
            .endAt(mLastDataSnapshot.getKey())
            .limitToLast(TOTAL_ITEM_EACH_LOAD)
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {


                    if (dataSnapshot.exists()) {
                        mChatList.clear();
                        for (DataSnapshot readDataSnapshot : dataSnapshot.getChildren()) {
                            ChatResponse chatModel = readDataSnapshot.getValue(ChatResponse.class);
                            if (chatModel != null) {
                                mChatList.add(chatModel);
                            }
                            // We need Last DataSnapshot for pagination while load more
                            if (mChatList.size() == 1) {
                                mLastDataSnapshot = readDataSnapshot;
                            }
                        }
                        // One item duplicates from last list so need to Remove it
                        mChatList.remove(mChatList.size() - 1);
                        mView.onFetchLoadMoreSuccess(mChatList, mTotalCount);

                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    mView.hideLoading();
                }
            });
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...