android - Android Firestore 查询集合组被跳过
问题描述
我正在尝试使用 Firestore 的.collectionGroup
功能获取子集合,但它似乎根本没有触发。它应该返回至少一个找到的文档,因为它的状态是“已接受”但是当我运行调试时,它似乎跳过了该函数并且不返回任何类型的错误或我的任何日志。
当我正常运行它时,而不是在调试模式下,它会返回"onComplete: found no book reservations for this book"
当首次执行新的集合组查询时,最初也没有提示我创建复合索引,这通常是使用单个索引字段完成的,因此我尝试创建自己的索引,尽管我很确定它不能正常工作。
任何有关如何解决此问题的帮助或指导表示赞赏。
我的 firebase 数据库设置是: Collection:"Books" --> subcollection:"bookPendingRequests"
这是一个调试屏幕显示它正在读取正确的 bookFirebaseId
这是设置的 firebase 标记,以说明它应该阅读的内容。
这是我的代码,它设置为从 onCreate() 开始
private void loadBookReservationDates() {
getIncomingIntent();
bookPendingRequests = firestoreDB.collectionGroup("bookPendingRequests")
.whereEqualTo("bookRequestParentId", bookFirebaseIdString)
.whereEqualTo("bookReservationStatus", "Accepted");
bookPendingRequests.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.getResult().size() < 0) {
for (int i = 0; i < task.getResult().size(); i++) {
String dates = task.getResult().getDocuments().get(i).get("bookReservationDates").toString();
Log.d(TAG, "onComplete: dates: " + dates);
}
} else {
Log.d(TAG, "onComplete: found no book reservations for this book");
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG, "onFailure() returned: " + e);
}
});
}
解决方案
推荐阅读
- python - 将输出文本数据以表格形式写入 CSV 或 excel 文件
- flutter - 在颤动中获取屏幕的物理尺寸
- c# - 更改 DateTimeOffset 中的偏移量
- javascript - 如何将 Google Data Studio 与 Google App Script 连接起来?
- c++ - 避免指针运算,修复 clang tidy 错误
- javascript - 制表符,有没有办法在页脚中添加页面总和?
- ios - 我在 Tableview 单元格中有collectionView。它总是返回零。我该如何解决?
- python - 合并Dataframe中不同列的纬度和经度,然后使用haversine作为距离
- sql-server - 在其他数据库上找不到记录时更新行值
- python - 在 Anaconda Navigator 中不显示 Pip 安装的软件包