使用分页检索数据

当你拥有庞大的 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 需要知道你进行分页的顺序。