Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Java Firestore查询不等于Uid_Java_Android_Google Cloud Firestore - Fatal编程技术网

Java Firestore查询不等于Uid

Java Firestore查询不等于Uid,java,android,google-cloud-firestore,Java,Android,Google Cloud Firestore,很抱歉,我不得不问这个问题,我一直在研究无数的链接,但没有找到它。这似乎很简单,但却远非如此 我知道您不能在firestore中进行不等于查询,因此我的代码如下: private void getNotEqual() { // db defined elsewhere Query query = db.collection("collection") .whereLessThan("uid", user.getUid

很抱歉,我不得不问这个问题,我一直在研究无数的链接,但没有找到它。这似乎很简单,但却远非如此

我知道您不能在firestore中进行不等于查询,因此我的代码如下:

private void getNotEqual() {
    // db defined elsewhere
    Query query = db.collection("collection")
            .whereLessThan("uid", user.getUid())
            .whereGreaterThan("uid", user.getUid())
            .orderBy("uid");

    query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            Log.d(TAG, "Size: " + task.getResult().size());
        }
    });
}
private void getNotEqual(){
//其他地方定义的数据库
Query Query=db.collection(“collection”)
.whereLessThan(“uid”,user.getUid())
.whereGreaterThan(“uid”,user.getUid())
.orderBy(“uid”);
query.get().addOnCompletListener(新的OnCompletListener()){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“Size:+task.getResult().Size());
}
});
}
但它仍然没有返回不平等的文件。Uid来自Firebase身份验证,并作为字符串存储在文档中作为字段。我是不是遗漏了什么

提前衷心感谢您


此查询始终不会返回任何文档。它有效地要求所有uid字段既大于又小于某个值的文档,这是一个不可能满足的条件。Firestore查询中的过滤器在逻辑上是“和”组合在一起的。它们不是逻辑上的“或”


听起来您希望执行两个单独的查询,然后在客户机中合并结果。一个查询将具有
whereLessThan(“uid”,user.getUid())
和另一个
wheregreater(“uid”,user.getUid())
。但老实说,您可能更容易获取集合中的所有文档,并手动筛选出您不需要的文档。

此查询始终不会返回任何文档。它有效地要求所有uid字段既大于又小于某个值的文档,这是一个不可能满足的条件。Firestore查询中的过滤器在逻辑上是“和”组合在一起的。它们不是逻辑上的“或”

听起来您希望执行两个单独的查询,然后在客户机中合并结果。一个查询将具有
whereLessThan(“uid”,user.getUid())
和另一个
wheregreater(“uid”,user.getUid())
。但老实说,您可能更容易获取集合中的所有文档,并手动筛选出您不需要的文档。

引入了不相等查询,因此您现在可以使用:

private void getNotEqual(){
//其他地方定义的数据库
Query Query=db.collection(“collection”)
.whereNotEqualTo(“uid”,user.getUid())
.orderBy(“uid”);
query.get().addOnCompletListener(新的OnCompletListener()){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“Size:+task.getResult().Size());
}
});
}
引入了不相等查询,因此您现在可以使用:

private void getNotEqual(){
//其他地方定义的数据库
Query Query=db.collection(“collection”)
.whereNotEqualTo(“uid”,user.getUid())
.orderBy(“uid”);
query.get().addOnCompletListener(新的OnCompletListener()){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“Size:+task.getResult().Size());
}
});
}