本地合并 Firestore 查询
使用 Firestore 时,没有逻辑 OR 运算符来组合查询。要在本地合并两个单独的查询,您可以使用 Tasks.whenAllSuccess() 方法。
Tasks.whenAllSuccess() 将任务列表作为参数,并返回一个新任务,仅当所有输入任务都成功完成时成功完成。返回任务的结果是输入任务结果的列表,其顺序与输入任务传递的顺序相同。
以下是如何使用 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) { // Do what you need to do with your list } });
当您重写组合任务的 onSuccess() 方法时,您将收到一个对象列表,其中包含作为参数传递的任务的确切顺序进入whenAllSuccess()方法。这允许您合并两个查询的结果,同时保持正确的顺序。
您还可以考虑使用 Tasks.continueWith() 来代替 Tasks.whenAllSuccess() 来实现类似的结果。但是,这两种方法之间的选择取决于应用程序的具体用例。有关 Tasks.continueWith() 的更多详细信息,请参阅官方文档。
以上是如何使用 Tasks.whenAllSuccess() 在本地组合 Firestore 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!