Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore中是否有任何查询?_Firebase_Kotlin_Google Cloud Firestore - Fatal编程技术网

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支持: