2017-10-11 3 views
5

私はAndroidで新しいCloud Firestoreを使用しています。 私はこの問題をファイアストアで直面しています。 配列フィールドにIDが含まれているドキュメントを照会します。Firestoreで送信されたパラメータを含むドキュメントを照会するには?

例えば、私はこのような整数の配列を含むfirestoreのフィールドを持つ文書があります:私はID 66940を持っているとき image1

をだから、私はIDが含まれている文書やその他の文書を取得することができます、このアプローチよりも、ID 66940.


その他が含まれていない他の文書を返さず、私はまた、ドキュメントIDでそれを検索するためのID(66940)を使用することができます。マイドキュメントIDの形式は、このようなものです:
- 66940_88123
- 12323_66940

アイデアはあるが、自分のIDで66940を含むドキュメントを返すように。 私は解決策hereについて読んだことがありますが、実際に実装する方法は分かりません。

答えて

5

これは一般的な質問ですので、我々はクラウドFirestoreで配列を操作する方法についていくつかの文書を掲載している。要するに https://firebase.google.com/docs/firestore/solutions/arrays

、アレイのメンバーシップを照会したい場合は、それのようにあなたのデータを格納する方が良いでしょうブーリアンの地図。

ので、代わりにこの:

{ 
    name: "sam", 
    userGgIds: [12345, 67890] 
} 

あなたはこれをしたい:

{ 
    name: "sam", 
    userGgIds: { 
    12345: true, 
    67890: true 
    } 
} 

次にあなたがIDを含む文書を検索するには、このクエリを実行することができ、 "12345"

db.collection("users").where("userGgIds.12345", "==", true).get() 
+1

ああ、もちろん!私はドキュメント間の参照に接続しておきたいと思います。その重要性と共通性のために、これが会員関係(1:*、*:*)の推奨されるユースケースであることを文書で繰り返し述べることは素晴らしいことです。いくつかのローテーションを行う時間:| –

関連する問題