2016-12-22 7 views
4

Firebase Android SDKを使用してチャットプロジェクトを作成しました。 3ヶ月後、私のアプリケーションには多くのユーザーがいて、お互いにチャットしています。 Firebaseからすべてのチャットリストをロードするのに時間がかかります。今、Android SDKを使用してFirebaseからクエリをページングする方法が不思議です。Android FirebaseUIを使用してFirebaseからページングクエリを作成する方法

この問題のクエリコマンドを検索するには、このを調べましたが失敗しました。私は最初から最後までの行の番号だけを照会します。私はFirebaseのランダムな場所から問い合わせることができませんでした。照会にskiptakeキーを使用する例

もしあなたがそれについてのドキュメントがあれば。教えてください。 進んでいただきありがとうございます。

答えて

1

私はこのデモを試しましたFirebase Paginatorそれは私のために働く。しかし、それはいくつかの問題があります。

+0

お返事ありがとうございます。それは今、働く! –

7

skip()またはtake()のような概念は、Firebaseデータベースのリアルタイムの世界にはうまくマッピングされません。そのため、ページネーションも実装するのが難しいでしょう。技術的には可能ですが、優れたユーザーエクスペリエンスを得るためには、ページ上のデータがユーザーの見ている間に変更される可能性があります。

public Query startAt (String value, String key) 

だけ返す子ノードに拘束クエリを作成します。startAt()endAt()方法は(強調鉱山)として文書化されているオプションの二番目のパラメータを取る:あなたはページネーションを実装する方法に戻る

与えられた値より大きいか等しい値を指定して、orderByディレクティブまたは優先度をデフォルトとして使用し、さらに以上のキーを持つ子ノードのみをに設定します。

例えば、あなたが日付順にソート項目のリストを持っているのであれば、あなたは、次のページを取得するには、前のページに日付と最後の項目のキーに渡すことができます。 1つの余分なアイテム(しばしばアンカーアイテムと呼ばれる)をリクエストする必要がありますが、オーバーヘッドは小さくする必要があります。

+0

ご協力いただきありがとうございます。私はこの解決策について考えました。しかし、ページあたり100個のアイテムを読み込むのは難しいです。 –

+0

ねえ、これは素晴らしい答えです、それを解決するために苦労しており、行き止まりを打ち続ける、あなたはデータベース構造の例を追加できますか?お返事ありがとうございます。 – cutiko

関連する問題