我想查询集合中的对象,其中" equipmentOption" == equipmentOption || " equipmentOption" == -1。
在研究了这个问题之后,我得出的结论是Firestore Querys无法做到这一点。这是正确的还是有办法像这样查询?
所以我的解决方案就是有两个单独的查询:
Task<QuerySnapshot> routinesWithEquipmentOption = doc.getReference().collection("Routines").whereEqualTo("equipmentOption", programm.getEquipmentOption()).get();
Task<QuerySnapshot> routinesWithoutEquipmentOption = doc.getReference().collection("Routines").whereEqualTo("equipmentOption", -1).get();
并以某种方式合并此查询。这就是我所取得的成就:
Tasks.whenAllSuccess(routinesWithEquipmentOption, routinesWithoutEquipmentOption).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> objects) {
}
});
在这个OnSuccessListner中,我得到了一个对象列表。这让我感到困惑,这些对象包含哪些信息。有没有办法将它们转换为DocumentSnapshot,以便我可以调用.toObject()
?此外,似乎我没有得到任何回报,因为onSuccess从未被调用过。