使用分頁檢索資料
當你擁有龐大的 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 需要知道你進行分頁的順序。