If there is a String named 'California' at firestore database and i want to search from android app as 'Cali' then the firebase should return me California. How can i do that query?
There has some function at firestore like,
db.collection("cities").whereEqualTo("name", "Cali")
db.collection("cities").whereLessThan("name", "Cali")
db.collection("cities").whereGreaterThanOrEqualTo("name", "Cali")
db.collection("cities").whereGreaterThan("name", "Cali")
db.collection("cities").whereGreaterThanOrEqualTo("name", "Cali")
But i need a function like as,
db.collection("cities").whereContain("name", "Cali")
which should return full string that contains 'Cali' substring.
Unfortunately, there is no query in Firestore that looks like this:
But for small datasets, there is a workaround that can help you solve this, which is by querying the database to get all city names and use
contains()
method like this:If you'll try to print the value of
b
, you'll see that istrue
. But the above examples works well enough only for small datasets, it doesn't work for large datasets and this is because downloading an entire collection to search for fields client-side isn't practical. In this case, as the official documentation recommends:For a concrete example, please also see my answer from this post.