Java 如何按值进行查询云Firestore
您好,我想按值查询Google cloud 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
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
链接,可用于改进您的问题。当您添加}}时代码>最后,我还建议花一些时间来正确缩进代码。你越容易让人们(快速)阅读你的问题,就越有可能有人帮助你。