繁体   English   中英

如何按值查询 Cloud Firestore

[英]How to make query Cloud Firestore by values

您好,我想通过 values 查询 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---");}

但它返回集合中的所有文档。

谁能帮我?

在许多地方,你这样做:

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

这会返回一个添加了 .where() 条件的新查询 - 它不会修改原始查询。 someQuery之后完全一样。 您需要保存返回值,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM