我无法进入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";
}
});
答案 0 :(得分:0)
在reference中,您可能会发现以下句子:
在使用收集组查询之前,必须创建一个支持收集组查询的索引。您可以通过错误消息,控制台或Firebase CLI创建索引。
从相同的参考示例看来,代码已正确完成。当然,我们不知道您在from1
,to1
和date
变量中拥有什么。从屏幕截图中可以看出,date
的数据库格式很奇怪。同样,我不确定它将如何与多种whereEqualTo
方法一起使用。
很多人认为这里可能会出错,但是如果我不知所措,我将首先检查索引,然后从使用单个whereEqualTo
构建查询开始,尝试从数据库中获取任何内容,就像在参考示例。
如果成功,则可以将其扩展到更复杂的解决方案。
我希望它将对您有帮助!