【发布时间】:2020-09-21 15:54:47
【问题描述】:
我在 Firestore 中有以下收藏。所有文件都相似:
我正在尝试对其运行以下查询:
orders = new ArrayList<>();
Log.d("cs50", "email = " + email);
database.collection("Orders").whereEqualTo("Donor", email).whereEqualTo("isFulfilled", false).orderBy("timestamp", Query.Direction.DESCENDING).get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
Log.d("cs50", "snapshots.size() = " + queryDocumentSnapshots.size());
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
orders.add(documentSnapshot.getId());
Log.d("cs50", "onSuccess() orders.size() = " + orders.size());
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("cs50", "Error getting orders", e);
}
});
notifyDataSetChanged();
我在我的 logcat 中得到以下输出:
2020-09-21 20:41:54.736 9560-9560/com.example.treeapp D/cs50: email = donor40@gmail.com
2020-09-21 20:41:55.876 9560-9560/com.example.treeapp D/cs50: snapshots.size() = 0
查询没有返回任何文档快照,您可以从 logcat 中看到。
我的猜测是我可能在orderBy 中使用了错误类型的Direction.DESCENDING。很可能我错了。 IDE 为Direction.DESCENDING 提供了三个选项:Query.Direction.DESCENDING、OrderBy.Direction.DESCENDING 和StructuredQuery.Direction.DESCENDING。如您所见,我使用的是Query.Direction.DESCENDING。其他两种类型在 IDE 中出现错误。
我不明白到底出了什么问题。我的 logcat 中没有收到任何错误消息,因此安全规则没有问题。从 logcat 输出中可以看出,查询实际运行,它只是返回一个空的queryDocumentSnapshots。
【问题讨论】:
标签: android firebase google-cloud-firestore