java - Firestore android studio中的CollectionGroup查询
问题描述
我无法进入 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";
}
});
解决方案
在参考资料中,您可能会发现以下句子:
在使用集合组查询之前,您必须创建一个支持您的集合组查询的索引。您可以通过错误消息、控制台或 Firebase CLI 创建索引。
从同一个参考示例中,似乎代码已正确完成。当然我们不知道你有什么 from1
,to1
和date
变量。从屏幕截图中,您的数据库中似乎date
有奇怪的格式。同样,我不确定它如何与多种whereEqualTo
方法一起使用。
很多人认为这里可能会出错,但如果我站在你的立场上,我会从检查索引开始,而不是从构建查询开始,whereEqualTo
尝试从数据库中获取任何东西,就像在参考示例中一样。
如果你成功了,你就可以将它扩展到更复杂的解决方案。
我希望它会有所帮助!
推荐阅读
- c++ - 通过指针问题
- ios - 无法从不需要的通信扩展 iOS 访问钥匙串
- python - 尽管提升为以管理员身份运行,PyCharm 仍引发权限错误
- asp.net - ASP.NET Core 2.1 Jwt 设置自定义声明
- javascript - 如何让 Google Tag Manager 事件跟踪发送到 Google Analytics?
- c++ - 未找到 extern 声明的模板专用函数
- haskell - 如果列表包含一些可被 42 整除的值,使用 'any' 来告诉你真/假
- javascript - 无法删除事件侦听器 Javascript
- r - 按行 r 映射嵌套数据
- visual-studio-code - Visual Studio Code - 快捷方式 - 折叠资源管理器中的所有文件