これは私のプログラムの流れです:
このセッションで、ユーザーがビデオをストリーミングしたり、添付ファイルをダウンロードしたり、複数選択形式で質問に答えたりできる学習セッションを作成できます。
そのため、1 つのセッションにビデオやファイル、質問を含めることができます。
セッションを作成する過程で、セッションをデータベースに保存する前に、ビデオやファイルのすべてのアップロード タスクを完了し、そのセッションの質問を保存するすべてのデータベース タスクを完了する必要があります。この場合、私はこのようなものを使用します。最終タスク
Tasks.whenAll(listTask)
に追加onCompleteListener
し、最終的にセッションをデータベースに保存します。UploadTask
ほとんどすべてが期待どおりに機能し、質問が保存され、ビデオがアップロードされましたが、ビデオのアップロードから返された に問題があります。私のSession
クラスにvideoUrl
は、ビデオの URL を含むフィールドがあります。ビデオの URL を取得するにはonCompleteListener
、 myUploadTask
に追加し、タスクの結果から URL を取得して、その URL をクラス インスタンスに保存する必要があります。onCompleteListener
ただし、最終タスクの が最初に呼び出されるため、ビデオ URL はデータベースに保存されません。
私の質問は、listTask のすべてのタスクが完了し、onCompleteListener も完了したときに Tasks.whenAll(listTask) を実行する方法です。