Firestore のフィードおよびフォロー システムでスケーラビリティの問題に対処する
ソーシャル ネットワーキングの世界では、スケーラブルなフィードおよびフォロー システムを作成することが重要です最適なパフォーマンスとユーザーエクスペリエンスを保証します。 Firebase Realtime Database を使用する場合、大規模なユーザーのフォローと新しいフォロワーのすべての投稿の取得の制限により、大きな課題が発生しました。一方、Firestore は、よりスケーラブルなソリューションを提供します。
提案された Firestore データベース構造
スケーラビリティの問題に対処するために、上位 3 つを含むスキーマを提案します。レベル コレクション:
スケーリングの問題の解決
問題 1: フォロワーのタイムラインに大量の投稿が追加される
解決策: コレクションを使用することで、Firestore は大量のデータを効率的に処理できます。ユーザーに多数のフォロワーがいる場合でも、新しい投稿の追加は各ユーザーの「userPosts」コレクションにのみ影響します。追加のデータはデータベース全体にコピーされません。
問題 2: 新しいフォロワーが多数の投稿を持つユーザーからのすべての投稿を受信する
解決策: の代わりにすべての投稿を 1 か所に保存すると、投稿は各ユーザーの「userPosts」コレクションに保存されます。これにより、カーソルと制限に基づいた効率的なクエリ操作が可能になります。ユーザーがタイムラインを下にスクロールすると、最新の投稿のみがチャンクで取得されます。
追加の最適化
2019 年 5 月 20 日更新: さらに詳しくパフォーマンスを最適化するには、各ユーザーのフィードに対してドキュメントを作成することが有益です。このドキュメントには、フォローしているユーザーの最近の投稿を保存できます。このアプローチにより、複数のコレクションをクエリする必要性が最小限に抑えられ、ユーザー タイムラインの読み込みが高速化されます。
この構造の利点
以上がFirestore を使用して、ソーシャル ネットワークのスケーラブルなフィードとフォロー システムを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。