2017-12-28 35 views
0

addSnapshotListenerでリアルタイムアップデートを使用すると、新しいFirebaseFirestoreデータベースにどのようにページを設定できますか。Android Firebase FireStoreリアルタイム更新ページ設定

私が抱えている問題は、一度クエリを設定するとlimit()を更新できないため、同じ制限が残っており、さらにデータを読み込むことができないということです。

これは私が現在持っているものです(私はそれがまたaddSnapshotListener方法に活動を渡してやっていることを知って)

private Query query = db.collection("groups").orderBy("id", Query.Direction.DESCENDING).limit(15); 

これらは、クエリパラメータであり、そして私は、データベースのリスナーを削除するListenerRegistrationを持っています。

これは、データをフェッチするためのコードです:言われたよう

registration = query.addSnapshotListener(this, new EventListener<QuerySnapshot>() { 
    @Override 
    public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) { 
     mGroupArrayList.clear(); 

     if (e != null) { 
      Log.w("MAINACTY", "listen:error", e); 
      return; 
     } 

     for (DocumentSnapshot dc : documentSnapshots.getDocuments()) { 
      // Get the last visible document 
      lastVisible = documentSnapshots.getDocuments() 
        .get(documentSnapshots.size() - 1); 

      mGroupArrayList.add(dc.toObject(Group.class)); 
     } 

     adapter.notifyDataSetChanged(); 
    } 
}); 

、問題は私が最初のクエリに設定された制限を更新することはできませんということです、と私は新しいクエリを実行しようとした場合その情報を編集したり、私がその活動を離れると、古い情報は消えてしまいます。

ドキュメントには、get()のページ付け方法の例しかありませんが、その方法ではリアルタイム更新はありません。

+0

がこのために参考になるかもしれませあなたhttps://stackoverflow.com/questions/37711220/firebase-android-pagination –

+0

リンクのおかげで、それは新しいfirestoreデータベースではありません。 – Jonny

答えて

1

私はこのコードをRecyclerview Firestoreページング用のgithubで作成していますが、これはあなたの問題を解決するのに役立つかもしれません。

https://github.com/Malik333/RecyclerviewFirestorePagination

+0

面白いのですが、あなたがアプリを離れるときに、最初のデータが消えない場合の戻り値(ホームボタンでそれを殺さずに)を教えてください。 firebaseコンソールからリアルタイムでエントリを編集すると、最初のクエリデータが消滅しますか? 私はこの問題に直面しています。ページネーションを達成するためですが、新しい情報を編集したり追加したりするときや、アプリケーションを終了してホームボタンで戻るときに古いクエリデータが消えてしまいます。 – Jonny

+0

うーん、私はあなたの問題が何であるか分かりませんので、何が問題なのかよく分かりません。おそらく、mGroupArrayList.clear()を削除することができます。あなたの問題を理解していれば、あなたのリストはすべて更新されるか、または新しいデータが送られてくるので、あなたのリストはクリアされ、新しいデータで更新されるからです。もしあなたが私にあなたのコードを送ることができれば、私はあなたを助けようとします。 – Unofficialpage

+0

どこに連絡することができますか? – Jonny

関連する問題