Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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,您好,我想按值查询Google cloud Firestore 我试着这样做: FirebaseFirestore db = FirebaseFirestore.getInstance(); Query someQuery = db.collection(.someCollection); if (someBoolean){ someQuery.whereEqualTo("SomeField", "SomeValue"); } if (someBoolea

您好,我想按值查询Google cloud Firestore

我试着这样做:

FirebaseFirestore db = FirebaseFirestore.getInstance();
Query someQuery = db.collection(.someCollection);
if (someBoolean){
someQuery.whereEqualTo("SomeField", "SomeValue");
}
if (someBoolean2){
someQuery.whereEqualTo("SomeField2", "SomeValue2");
}
//etc
someQuery.limit(1);
someQuery.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>(){
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task){
if (task.isSuccessful()){
if (task.getResult().isEmpty()){
Log.d("LOG","NO DOCUMENTS FOUND");
}
else{
for(QueryDocumentSnapshot document : task.getResult()){
Log.d("LOG", document.getId()+"=>"+document.getData());}}
}
else{
Log.d("TAG", "---ERROR---");}
FirebaseFirestore db=FirebaseFirestore.getInstance();
Query-someQuery=db.collection(.someCollection);
if(someBoolean){
someQuery.whereEqualTo(“SomeField”、“SomeValue”);
}
if(someBoolean2){
someQuery.whereEqualTo(“SomeField2”、“SomeValue2”);
}
//等
限制(1);
someQuery.get().addOnCompletListener(新的OnCompletListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
if(task.getResult().isEmpty()){
日志d(“日志”,“未找到文件”);
}
否则{
对于(QueryDocumentSnapshot文档:task.getResult()){
Log.d(“Log”,document.getId()+”=>“+document.getData());}
}
否则{
Log.d(“标记”,“错误----”);}
但它会返回集合中的所有文档


有人能帮我吗?

在许多地方,你都可以这样做:

if (someBoolean){
    someQuery.whereEqualTo("SomeField", "SomeValue");
}
这将返回一个添加了.where()条件的新查询-它不会修改原始查询。
someQuery
之后完全相同。您需要保存返回的值,例如:

if (someBoolean){
    someQuery = someQuery.whereEqualTo("SomeField", "SomeValue");
}

我忘了在末尾加上符号:});您的问题下方有一个
edit
链接,可用于改进您的问题。当您添加
}}时最后,我还建议花一些时间来正确缩进代码。你越容易让人们(快速)阅读你的问题,就越有可能有人帮助你。