2016-10-25 2 views
1

私はfirebaseページネーションの作業をしようとしていますが、私は最新のアイテムを最初にして、少し古くなるようにしたい、私はこれで動作しようとしたが、新しい値を得ることができないように、同じものを渡し続ける...私はENDATに文字列Idは...任意のアイデアファイアベースを最後のアイテムから最初のアイテムにページ分割する方法は?

mDatabase.child("projects").orderByChild("viewCount").limitToLast(25).endAt(offSet.get("first")).addValueEventListener(new ValueEventListener() { 

私はstartAtにそれを切り替えてみましたし、私も結果を得ることはありませんMOREINFOパスプロジェクト> PROJECTID>ありますか?

+0

に使用されたHashMapのこのendAt(offSet.get("first"))値は男ねえ、あなたがこの使用firebaseを達成することができました変更します? –

+0

はい私の答えを見てください、それは解決した方法ですが、いくつかのdbリストラが必要かもしれません。 – Lion789

+0

こんにちはライオン、私はページネーションをしようとしていますが、Firebaseはいつも私に同じ結果を与えます。私が助けることができるなら、私はthead(https://stackoverflow.com/questions/45997375/firebase-android-pagination-load-always-same-items)を開いています。そうでない場合は、コードを入力できますか? –

答えて

0

オフセットはorderByChildのために使用したのと同じキーでなければなりませんでした - それが機能しなかった理由ですので、再生回数

+0

コードを投稿できますか?私はあなたと同じ問題があると思う –

0

ソリューション1

あなたはtimeStumpように、1つの以上の追加のプロパティを設定する必要がプロジェクトのための値を設定中。

projects.setTimeStump(System.currentTimeMillis()); 

あなたは

item.setWithPriority(yourObject, 0 - Date.now()); 

としてfirebaseの変数を.priority設定し、それを照会することができ、プロジェクトを設定している間、あなたはこの

Query query=myRef.orderByChild("timeStump").limitToLast(50); 

ソリューション2

のように問い合わせることができますlike

Query query=myRef.child('projects').startAt().limit(20); 
+0

私は現在、viewCountと呼ばれる整数で何かを注文していますので、ビュー数の順番で必要ですが、最初に最も高いビューを表示したいのですが、オフセットを使って何をしたのかを見極めようとしています解決策1ではページ分割ではなく、私がすでに行った最後の50をグライングするだけです... – Lion789

+0

https://firebase.googleblog.com/2013/10/queries-part-1-common-sql-queries.html#between –

関連する問題