データベース階層:ユーザーが作成したすべての投稿を正しく照会するにはどうすればよいですか?
posts
post1_uid
author: user2UID
info1
info2
post2_uid
author: user1UID
info1
info2
users
user1_UID
info1
info2
info3
user2_UID
info1
info2
info3
SITUATION:
ユーザーが記事を作成することができます。各投稿には投稿を作成したユーザーのUIDを保持する「作成者」プロパティがあります。私は一人のユーザからのすべての投稿を表示したい場合は
は、私は私のFirebase GETリクエストで書く:
CODE:
if (childData.author == firebase().auth().currentUser.uid) {
//Show those posts created by the current user
}
QUESTION
これは効率的でしょうか?私のFirebaseデータベースに何百万もの投稿があり、現在のユーザーのIDを各投稿の「著者」プロパティと比較する必要がある場合はどうすればいいですか?
いいえ、いい選択肢がありますか?私の「ユーザー/ UID /」パスにユーザーが作成したすべての記事のUIDを含む「投稿」ノードを作成
:私はを試してみましたWHAT
。
このように、データベース(Millions)のすべての投稿を繰り返して比較した場合と比べてはるかに小さいjsonツリー(ユーザー(100)によって作成されたすべての投稿のみ)を繰り返し処理します。ユーザー。しかし、これは実際にパフォーマンスに影響を及ぼしますか?それに見合ったデータネストの増加ですか?
他のデータベースの階層:ここ
posts
post1_uid
author: user1UID
info1
info2
post2_uid
author: user1UID
info1
info2
users
user1_UID
info1
info2
info3
posts
referenceUID
post1UID
post2UID
user2_UID
info1
info2
info3
は私の例の動作を模倣するためにいくつかの偽のデータと実際のデータベースの階層です。
TL; DR:
がどのように適切にユーザーによって作成されたすべての記事を探してクエリを最適化するFirebaseデータベースを整理するには?