我正在尝试使用Firestore的.collectionGroup
函数抓取子集合,但是它似乎根本没有触发。它应该返回至少一个找到的文档,因为其状态为“已接受”,但是当我运行debug时,它似乎跳过了该函数,并且不返回任何类型的错误或任何日志。
当我正常运行而不是在调试模式下运行时,它返回"onComplete: found no book reservations for this book"
最初也没有提示我创建复合索引,通常在第一次执行新的集合组查询时通常使用单数索引字段来完成,因此尽管很确定它无法正常工作,但我还是尝试创建自己的复合索引正确。
感谢您提供有关如何解决此问题的帮助或指导。
我的Firebase数据库设置为: 收藏:“书籍” ->子集合:“ bookPendingRequests”
这是一个调试屏幕,显示它正在读取正确的bookFirebaseId
这是我的代码,设置为从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);
}
});
}