2017-11-01 8 views
0

FirestoreはwhereNotEqualのようなものをサポートしていますか?Cloud FirestoreここでNoEqual

たとえば、キー「xyz」がない正確なドキュメントを取得する必要があります。 Firebaseリアルタイムデータベースでは、*.equalTo(null)を呼び出すことで取得できます。

ありがとうございました。

+0

"xyz"フィールドを持たないすべてのドキュメントを取得するためにコレクションを照会することをお勧めします。ドキュメンテーションと実験の私の読書に基づいて、私はFirestore APIがそれをサポートしているとは思わない。 –

答えて

0

Firestoreは!=と直接的に対応していません。サポートされているクエリ演算子は<, <=, ==, >, or >=なので、 "whereNotEqual"はありません。

フィールドが存在するかどうかは、フィールドが存在するかどうかをすべて明示的にフィルタを作成するため、フィールドが存在するかどうかをテストできます。例えば、AndroidのSDKに:

collection.orderBy("name") 

"name"フィールドを含む行のみを返します。

明示的に比較すると、値が存在しない行を返すようにこのクエリを逆転させる方法はありません。

いくつかの回避策があります。最も直接的な置換は、nullを明示的に格納し、次にクエリcollection.whereEqualTo("name", null)を格納することです。ただし、これを最初から設定していない場合は、元のデータをバックフィルしなければならないので、これはやや厄介です。すべてのクライアントをアップグレードできない場合は、このフィールドに値を入力したままにする関数を展開する必要があります。

もう一つの可能​​性は、通常、ドキュメントが部分的にしか組み立てられていないことを示します。おそらく、一部のステートマシンを通過するか、2つの重複しないタイプの和集合です。明示的に状態や型を判別式として記録すると、フィールド非存在ではなく照会できます。これは本当にうまくいくのは2つの州/タイプしかないが、多くの州がある場合には面倒だ。

関連する問題