Firebase Firestore中是否有任何查询?
我想找到列表中包含其电话号码的所有用户。 这就像从数据库中搜索Firebase Firestore中是否有任何查询?,firebase,kotlin,google-cloud-firestore,Firebase,Kotlin,Google Cloud Firestore,我想找到列表中包含其电话号码的所有用户。 这就像从数据库中搜索*,在数据库中,电子邮件包含电话号码 这就是我正在做的 fun getUsers(persons: List<Person>?): Single<List<User>> { return Single.create({ emitter -> try { val db = FirebaseFirestore.getInstance()
*
,在数据库中,电子邮件包含电话号码
这就是我正在做的
fun getUsers(persons: List<Person>?): Single<List<User>> {
return Single.create({ emitter ->
try {
val db = FirebaseFirestore.getInstance()
val userCollection = db.collection(USER_FIREBASE_TABLE)
var query: Query? = null
persons?.forEach({ person ->
query = if (null == query) userCollection
.whereEqualTo("phone", person.phone)
else query!!.whereEqualTo("phone", person.phone)
})
query?.get()?.addOnCompleteListener({ task: Task<QuerySnapshot> ->
emitter.onSuccess(task.getResult().toObjects(User::class.java))
})
} catch (exception: Exception) {
exception.printStackTrace()
emitter.onError(exception)
}
})
}
fun getUsers(人员:列表?):单身{
返回Single.create({emitter->
试一试{
val db=FirebaseFirestore.getInstance()
val userCollection=db.collection(USER\u FIREBASE\u表)
变量查询:查询?=null
人员?.forEach({person->
query=if(null==query)userCollection
.whereEqualTo(“电话”,person.phone)
else查询!!.WHEREQUALTO(“电话”,person.phone)
})
query?.get()?.addOnCompleteListener({task:task->
onSuccess(task.getResult().ToObject(User::class.java))
})
}捕获(异常:异常){
例外情况。printStackTrace()
发射器.onError(异常)
}
})
}
正如您所看到的,我每次都在查询后面添加whereEqualTo。有没有办法用类似于的东西来替换它,其中和我传递一个数组或一组值来匹配?
还可以使用相等运算符链接多个where(),例如:
citiesRef.whereEqualTo("state", "CA").whereEqualTo("state", "CO");...
此外,只能对单个字段执行范围比较(=):
citiesRef.whereGreaterThanOrEqualTo("state", "CA").whereLessThanOrEqualTo("state", "IN")
@Alex Mamo,现在firestore支持: