ペットを所有しているユーザーがいるアプリがあります。AndroidアプリでFirebaseのリレーションを照会する方法
私は、さまざまなソースで読んだから、これはFirebase DB内の関係をモデル化するための有効な方法である:
{
"users":{
"user1":{
"name":"Arthur",
"pets":{
"pet1":true,
"pet2":true
}
},
"user2":{
"name":"George",
"pets":{
"pet3":true,
"pet4":true
}
}
},
"pets":{
"pet1":{...},
"pet2":{...},
"pet3":{...},
"pet4":{...}
}
}
は、私はAndroidアプリを持っている、と私はすべてのユーザーのリストを提示したいと各リスト項目には、ユーザーが所有しているペットについても記載されています。
私が欲しいのは、各ユーザオブジェクトにペットオブジェクトのリストを持つユーザオブジェクトのリストです。例:
この結果を得るためにDBを照会する最良の方法は何ですか?
を問題/懸念は何ですか? [リストからユーザーを読み込む](https://firebase.google.com/docs/database/android/lists-of-data#child-events)と[ペットに参加する](http ://stackoverflow.com/q/31670234)(または[これらのいずれか](http://stackoverflow.com/search?q=%5Bfirebase%5D%5Bandroid%5D+join))。あなたが参加のパフォーマンスを心配しているなら、[私の答えはこちら]を読んでください(http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-social-network-app-by-using)。 -query-of-obse/35932786#35932786)。 –
ありがとう@FrankvanPuffelen、私の懸念はこれです:私が欲しいものは、質問に示されているようにユーザーオブジェクトのリストです。たとえば、100人のユーザーがいるとしたら、ユーザーのクエリを実行する必要があり、ループごとに別のクエリ(100クエリ)を作成する必要があるということですか?そして、私は自分の個人のペットのリストを設定する必要があります...これはちょうど複雑で不便だと思われます – dors
100人のユーザーを表示し、インデックスデータ構造を使用する場合、100項目を取得する必要があります。これはクライアント側のジョイン操作であり、実際にはより多くのクライアント側のコードにつながります。しかし、私の最初のコメントの最後のリンクで説明されているように、思うほど遅くはありません。 –