【问题标题】:CollectionGroup query in firestore android studioFirestore android studio中的CollectionGroup查询
【发布时间】:2020-02-27 19:48:44
【问题描述】:

我无法进入 for 循环。它没有显示任何错误。当我尝试调试时,它没有进入 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】:

    reference你可能会发现以下句子:

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

    从同一个参考示例看来,代码是正确完成的。当然我们不知道from1to1date 变量中有什么。从屏幕截图看来,date 在您的数据库中有奇怪的格式。我也不确定它如何与多个 whereEqualTo 方法一起使用。

    很多人认为这里可能会出错,但如果我站在你的立场上,我会从检查索引开始,而不是从使用单个 whereEqualTo 构建查询开始尝试从数据库中获取任何内容,就像在参考示例中一样.

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

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      相关资源
      最近更新 更多