私はインストゥームスタイルのフィードを作成し、あなたがフォローしている人々に基づいて投稿にページを設定する方法を見つけようとしています。Firebase Swiftページングのニュースフィード
次のように私のデータが構成されています
posts:
user1:
post1
post2
user2:
post3
post4
user3:
post5
post6
post7
user-following:
user1:
user2
user3
ポストがポストを作成したユーザーによって組織されているので。私はまた、現在のユーザーが従う人々のための構造を持っています。だから私は、現在のユーザーが続いているユーザーのuidを取得し、投稿セクションに移動し、それらのユーザーからすべての投稿を取得し、各投稿はcreatedAt値を持っています。
私はqueryByChild( "createdAt")を使用すると、ユーザーごとのデータをソートしますが、絶対にそうではありません。 これは、データをチャンクに入れてから絶対ソートするのではなく、user2の投稿、次にuser3の投稿を並べ替えます。
ニュースフィードの投稿を所有するユーザーとは関係なく、最新の投稿全体が必要です。私はスナップショットのすべての投稿情報を得ることができますが、そのスナップショットを並べ替える方法はありますか?私はデータベースにチャンクではなく全体として情報を並べ替える方法を見つけ、そのソートされたリストから最新の「x」分のポストを取り出す必要があります。
それ以外の場合は、私は自分のプログラムにすべてをプルしてから、配列でソートしてから、最も最近の「x」分のページを配列のページング用に引き出す必要があります。 1000件の記事がある場合は、大量のデータをプルするとアプリのスーパーが遅くなり、クラッシュする可能性があります。助言がありますか?私の意見で
Firebaseのドキュメントは非常に役に立ちます。 * [queryLimitedToLast]:最後から返されるアイテムの最大数を設定する[iOS上のデータのリストを処理する](https://firebase.google.com/docs/database/ios/lists-of-data)を参照してください。 *この場合、これを15に設定します。これは、15の最新の投稿を返します。将来はFirebase構造(TEXT)とともに問題のあるコードを質問に含めてください。 [最小限で完全で検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve) – Jay
@Dirtyを確認することができます。Jayが返信を見たい場合は、「@Jay」をコメント –
@Jayご返信ありがとうございます。私の問題は少し深くなり、ユーザーが従う人の投稿を取得する必要があります。そのため、クエリは各ユーザーがチャンク内に投稿してから次のユーザーに移動するなどして、すべてのデータが観察されたらチャンクで並べ替えられることはありません。投稿が絶対にソートされるのではなく、個々のユーザーだけがソートします。スナップショットで一度にすべてのデータを一度に取得してソートし、最後の15個を取得する方法はありますか? – Dirty