私はthis postから、Firestoreのクエリは現在以下のようなシナリオを提供していないことを理解しています。他の回答ではアドバイスのように値を使用して、私は照会したい配列フィールドのマップを作成することですFirebaseは、配列に問い合わせることができません
FIRCollectionReference *ref = [defaultFirestore collectionWithPath:@"/somecollection"];
FIRQuery *query = [ref queryWhereField:@"foos.email" isEqualTo:@"[email protected]"];
:このようなデータを考える:よう
somecollection/somedoc:
foos: [ { name:"foo" email:"[email protected]" }, ... ]
somecollection/someotherdoc:
foos: [ { name:"bar" email:"[email protected]" }, ... ]
私は、クエリを記述することはできませんキー。ような何か:
somecollection/somedoc:
foos: [ { name:"foo" email:"[email protected]" }, ... ]
emails: { "[email protected]": true, ... }
somecollection/someotherdoc:
foos: [ { name:"bar" email:"[email protected]" }, ... ]
emails: { "[email protected]": true, ... }
今私のクエリは次のようになります。
FIRCollectionReference *ref = [defaultFirestore collectionWithPath:@"/somecollection"];
FIRQuery *query = [ref queryWhereField:@"[email protected]" isEqualTo:@(YES)];
しかし、このクエリは、メールアドレスがマップのキーのために良い構文ではないことを、私は考えて事実のために、何の文書を返しません。他の可能性のあるノイズの中には、.
というドットが含まれています。これは逆参照演算子としてFIRQuery
に見えます。
誰かが配列(またはマップのキーとして不適切なように見える他のオブジェクト)の電子メールのクエリ方法を説明できますか?