Java 添加条件时,Firestore查询无法获取文档
我试图从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
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中打印了任何异常或错误?