2016-03-31 1 views
0

Есть ли способ в Firebase, мы можем указать запрос по счету.Может ли Firebase Queries получать предметы по счету/офсету?

Например, если общее количество записей под узлом равно 100, и я не хочу извлекать 100 только в одном запросе. Могу ли я сказать, верните мне первые 10, а затем следующие 10 и так далее.

Я знаю, что Firebase предоставляет такие запросы, как limitToFirst() и limitToLast(), но тогда он не будет использовать описанный выше прецедент.

Пожалуйста, дайте мне знать, если у кого-то есть мысли по этому поводу.

+0

Можете ли вы поделиться использовать пример? – Jay

+0

См. Http://stackoverflow.com/questions/28558586/angularjs-fetch-records-for-pagination-from-firebase –

ответ

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) { 

     } 
    }); 
}