firestore android studio中的CollectionGroup查询

问题描述 投票:-1回答:1

我无法进入for循环。它没有显示任何错误。当我尝试调试时,它没有进入循环。进入for循环后,它只能检索结果。有谁可以帮忙?

Query query =fstore.collectionGroup("ride").whereEqualTo("from",from1).whereEqualTo("to",to1).whereEqualTo("date",date);
query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {

@Override
public void onSuccess(QuerySnapshot snapshots) {
      for (QueryDocumentSnapshot queryDocumentSnapshot:snapshots)
           {                 
              String source = queryDocumentSnapshot.getString("from");
              String destination = ueryDocumentSnapshot.getString("to");
              String date1 = queryDocumentSnapshot.getString("date");
              String time = queryDocumentSnapshot.getString("time");
              String vehicle = queryDocumentSnapshot.getString("vehicle number");
              String cost  = queryDocumentSnapshot.getString("Cost per person");
              String seats = queryDocumentSnapshot.getString("number of seats");
              String model = queryDocumentSnapshot.getString("car model");
              data += source+" "+destination+" "+date1+" "+time+" "+vehicle+" "+cost+" "+seats+" "+model+"\n";
           }
});

enter image description here

java android firebase google-cloud-firestore
1个回答
0
投票

reference中,您可能会发现以下句子:

使用收集组查询之前,必须创建一个支持收集组查询的索引。您可以通过错误消息,控制台或Firebase CLI创建索引。

在同一个参考示例中,似乎代码正确完成。当然,我们不知道您在from1to1date变量中有什么。从屏幕快照中,似乎date在您的数据库中具有奇怪的格式。同样,我不确定它将如何与多种whereEqualTo方法一起使用。

[很多人认为这里可能出错,但是如果我不知所措,我将从检查索引开始,而不是从使用单个whereEqualTo来构建查询以尝试从数据库中获取任何内容开始,就像在参考示例中一样。

如果成功,您可以将其扩展到更复杂的解决方案。

我希望它会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.