使用分頁檢索資料

當你擁有龐大的 JSON 資料庫時,新增值事件偵聽器沒有意義。它將返回巨大的 JSON 並解析它將是耗時的。在這種情況下,我們可以使用分頁和獲取部分資料並顯示或處理它。有點像延遲載入或喜歡在使用者點選顯示舊聊天時獲取舊聊天。在這種情況下,可以使用 Query

讓我們在前面的部分中採用我們的舊示例。使用者群包含 3 個使用者,如果它增長到 30 萬使用者,並且你想要批量獲取 50 個使用者列表:

// class level
final int limit = 50;
int start = 0;

// event level
Query userListQuery = userDBRef.orderByChild("email").limitToFirst(limit)
        .startAt(start)
userListQuery.addValueEventListener(new ValueEventListener() {
    @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
        // Do something
        start += (limit+1);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Do something about the error
    });

這裡可以新增和監聽值或子事件。再次呼叫查詢以獲取下一個 50. 確保新增 orderByChild() 方法,如果沒有它,這將無法工作。Firebase 需要知道你進行分頁的順序。