Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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查询无法获取文档_Java_Android_Google Cloud Firestore - Fatal编程技术网

Java 添加条件时,Firestore查询无法获取文档

Java 添加条件时,Firestore查询无法获取文档,java,android,google-cloud-firestore,Java,Android,Google Cloud Firestore,我试图从firestore中获取一个文档,并使用一个查询来只获取具有特定字段值的文档。当我添加过滤器时,我所看到的一切都应该是有效的,但它什么也不返回 代码如下: ArrayList<Service> services = new ArrayList<>(); db.collection("users/" + user.getUid() + "/" + Constants.SERVICES_TABLE) //customerID is a String

我试图从firestore中获取一个文档,并使用一个查询来只获取具有特定字段值的文档。当我添加过滤器时,我所看到的一切都应该是有效的,但它什么也不返回

代码如下:

ArrayList<Service> services = new ArrayList<>();

db.collection("users/" + user.getUid() + "/" + Constants.SERVICES_TABLE)
         //customerID is a String field in this method block
        .whereEqualTo("customerID", customerID)
        .get()
        .addOnCompleteListener(task -> {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {

                    //this code is not reached because QueryDocumentSnapshot always has a length of 0

                    Service service = new Service(
                            document.get("date").toString(),
                            document.get("service").toString(),
                            document.get("notes").toString(),
                            document.get("customerID").toString(),
                            document.get("cost").toString(),
                            document.get("tips").toString());

                    services.add(service);

                }

                myCallback.onCallback(services);

            } else {
                Log.d("tag", "Error getting documents: ", task.getException());
            }
        });
ArrayList services=new ArrayList();
db.collection(“users/”+user.getUid()+“/”+Constants.SERVICES_表)
//customerID是此方法块中的字符串字段
.whereEqualTo(“customerID”,customerID)
.get()
.addOnCompleteListener(任务->{
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
//无法访问此代码,因为QueryDocumentSnapshot的长度始终为0
服务=新服务(
document.get(“日期”).toString(),
document.get(“服务”).toString(),
document.get(“notes”).toString(),
document.get(“customerID”).toString(),
document.get(“成本”).toString(),
document.get(“tips”).toString();
服务。添加(服务);
}
myCallback.onCallback(服务);
}否则{
Log.d(“标记”,“获取文档时出错:”,task.getException());
}
});
当我删除查询筛选器时,我会按预期获得所有服务对象,但使用该筛选器不会收到任何内容


您是否尝试过直接使用
任务
在firebase的文档中创建一个
新的OnCompleteListener()
?我尝试过,但结果是一样的。返回的文档都没有语句,但没有语句。您确定您的customID是正确的吗?你在IDE中调试过吗?我调试过了,所有的东西都匹配了。我还从firestore复制了该值,并使用notebad应用程序将其与调试器显示的值进行比较。您是否检查了任务是否成功,是否在logcat中打印了任何异常或错误?您是否尝试直接使用
task
在firebase的文档中创建一个
新的OnCompleteListener()
,但结果是一样的。返回的文档都没有语句,但没有语句。您确定您的customID是正确的吗?你在IDE中调试过吗?我调试过了,所有的东西都匹配了。我还从firestore复制了该值,并使用notebad应用程序将其与调试器显示的值进行比较。您是否检查了任务是否成功,是否在logcat中打印了任何异常或错误?