ホームページ >Java >&#&チュートリアル >Tasks.whenAllSuccess() を使用して Firestore クエリをローカルで結合するにはどうすればよいですか?

Tasks.whenAllSuccess() を使用して Firestore クエリをローカルで結合するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 08:40:13589ブラウズ

How Can I Combine Firestore Queries Locally Using Tasks.whenAllSuccess()?

Firestore クエリをローカルでマージする

Firestore を使用する場合、クエリを結合するための論理 OR 演算子はありません。 2 つの別々のクエリをローカルでマージするには、Tasks.whenAllSuccess() メソッドを利用できます。

Tasks.whenAllSuccess() はタスクのリストを引数として受け取り、すべての入力タスクが完了した場合にのみ正常に完了する新しいタスクを返します。無事に完了しました。返されたタスクの結果は、入力タスクが渡されたのと同じ順序で、入力タスクの結果のリストになります。

Tasks.whenAllSuccess() を使用して 2 つのクエリをマージする方法は次のとおりです。

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() メソッドに引数として渡されます。これにより、適切な順序を維持しながら 2 つのクエリの結果をマージできます。

Tasks.whenAllSuccess() の代わりに、Tasks. continueWith() を使用して同様の結果を達成することも検討できます。ただし、2 つの方法のどちらを選択するかは、アプリケーションの特定の使用例によって異なります。 Tasks. continueWith().

の詳細については、公式ドキュメントを参照してください。

以上がTasks.whenAllSuccess() を使用して Firestore クエリをローカルで結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。