web-dev-qa-db-ja.com

Cloud FirestoreのSQL LIKE演算子?

Firebase Real Time Fatabaseをしばらく使用していて、今日Cloud Firestoreに出会いました。 FirestoreでLIKE演算子を使用する方法がわかりません。

Firebase Real Time Database

ref.child('user').orderByChild('name').startAt(name).endAt(name+'\uf8ff')

Cloud Firestoreで、私は試しました

userRef.where('name', '>=', name); <br>
userRef.where('name', '<=', name);

しかし、それは機能しません。

24
Manjok

これを解決するには、orderByChild関数をorderByに変更する必要があります。したがって、次のコードを使用してください:

ref.collection('user').orderBy('name').startAt(name).endAt(name+'\uf8ff')
22
Ioana P.

LIKEに相当するものはありませんが、RTDBで行うのと同じ方法でプレフィックスフィルタリングを行うことができます。

作成したクエリは、equalsと同じです。あなたはトリックで同じ終わりをする必要があり、<未満で実行する必要があります。

5
Dan McGrath

参考:新しいバージョンのクラウドファイアストア(0.12.5など)では、startAt()メソッドとendAt()メソッドには単一の文字列ではなく文字列のリストが必要です。

1
kevinH

そのような演算子はありません。許可されている演算子は==, <, <=, >, >=.ここで、Cloud Firestoreでのクエリのすべての制限を見つけることができます。 https://firebase.google.com/docs/firestore/query-data/queries

1
etrupja