在Firebase中是否有办法我们可以按计数指定查询。
例如,如果节点下的记录总数为100,并且我不想仅在一个查询中检索100。我可以说先回10,然后回10,依此类推。
我知道Firebase提供了limitToFirst()和limitToLast()等查询,但它不会解决上面定义的用例。
如果有人对此有任何想法,请告诉我。
答案 0 :(得分:0)
我遇到了类似的问题,不幸的是firebase不允许这样做。您可以处理此问题的唯一方法是检索所需的所有数据,然后在客户端进行订购。
示例:
private void getData() {
List<ModelType> data;
fireBaseRef = new Firebase(FIREBASE_PATH);
Query query = fireBaseRef.child(PATH).orderByChild(CHILD_NAME_PATH);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
data = new ArrayList<>();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
ModelType model = snapshot.getValue(ModelType.class);
data.add(model);
// ..
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}