首页  >  文章  >  Java  >  如何在保留订单的同时在本地合并 Firestore 查询?

如何在保留订单的同时在本地合并 Firestore 查询?

DDD
DDD原创
2024-11-15 06:32:02542浏览

How to Merge Firestore Queries Locally While Preserving Order?

按照正确的顺序在本地合并 Firestore 查询

如果 Firestore 中没有逻辑 OR 运算符,则必须在本地合并两个单独的查询才能检索所需的结果。为了保持正确的顺序,请考虑使用 Tasks.whenAllSuccess() 方法,而不是将第二个查询嵌套在第一个查询的成功侦听器中。

以下代码片段演示了推荐的方法:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query firstQuery = rootRef...;
Query secondQuery = rootRef...;

Task firstTask = firstQuery.get();
Task secondTask = secondQuery.get();

Task combinedTask = Tasks.whenAllSuccess(firstTask, secondTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
    @Override
    public void onSuccess(List<Object> list) {
         // The results are ordered according to the order of the queries
         // ...
    }
});

whenAllSuccess() 方法返回一个任务,当所有提供的任务都成功完成时,该任务将完成。任务的结果是一个对象列表,其中每个对象代表相应任务的结果。在这种情况下,列表将包含两个元素,每个元素分别代表firstTask和secondTask的结果。列表中元素的顺序将与在whenAllSuccess() 中指定任务的顺序相匹配。

此方法可确保结果根据任务的顺序进行排序,从而允许您合并来自多个查询的结果,同时保留其正确的顺序。

以上是如何在保留订单的同时在本地合并 Firestore 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn