イー・エージェンシーはマーケティングデータ活用でビジネス課題を解決するプロフェッショナル

【Firebase】Firebase Storageとは?(2)ファイルをアプリにダウンロードする方法

この記事をシェア

前回の Firebase Storage に関する記事の続きです。
今回は、Firebase Storage 上にあるファイルを、アプリにダウンロードしてみます。
公式のドキュメントはコチラです。
アップロードと同じように、ファイル/メモリ/ストリームに対してのダウンロードができます。
以下の例では、アプリの内部ストレージのファイルに対してダウンロードしています。
(実験のため、予め Firebase Storage にファイルを作っておきます。)

StorageReference fileRef = hogeRef.child("test.dat");

final File localFile = new File(getApplicationContext().getFilesDir(), "test.dat");
	
FileDownloadTask downloadTask = fileRef.getFile(localFile);

downloadTask.addOnCompleteListener(new OnCompleteListener<FileDownloadTask.TaskSnapshot>() {
  @Override
  public void onComplete(@NonNull Task<FileDownloadTask.TaskSnapshot> task) {
    if (task.isSuccessful()) {
      Log.d(TAG, "getFile success");
      Log.d(TAG, "getName : " + localFile.getName());
      Log.d(TAG, "getPath : " + localFile.getPath());
      Log.d(TAG, "length : " + localFile.length());
    } else {
      Log.d(TAG, "getFile failure", task.getException());
    }
  }
});

成功した場合、onComplete が呼ばれます。
実際にファイルが作られたかどうかは、Android Studio のファイルエクスプローラなどで確認できます。
サイズが大きいものをダウンロードする場合、ダウンロードの経過状況を表示したいことがあります。


downloadTask.addOnProgressListener(new OnProgressListener<FileDownloadTask.TaskSnapshot>() {
  @Override
  public void onProgress(@NonNull FileDownloadTask.TaskSnapshot task) {
    Log.d(TAG, "onProgress");
    Log.d(TAG, "getBytesTransferred : " + task.getBytesTransferred());
    Log.d(TAG, "getTotalByteCount   : " + task.getTotalByteCount());
  }
});

このようにすると、onProgress が一定時間毎にコールバックされます。
また、ダウンロードの途中で、ユーザーの操作によって、一時停止/再開/キャンセルすることもできます。
そのためには downloadTask に対して、pause()/resume()/cancel() メソッドを呼び出します。
ダウンロードが一時停止された場合、以下のコールバックが発生します。

downloadTask.addOnPausedListener(new OnPausedListener<FileDownloadTask.TaskSnapshot>() {
  @Override
  public void onPaused(@NonNull FileDownloadTask.TaskSnapshot task) {
    Log.d(TAG, "onPaused");
  }
});

キャンセルされた場合は、onComplete が発生します。この場合、task.isSuccessful() は false となります。

いかがでしたか?イー・エージェンシーでは、Google アナリティクス 360 やサポートをご契約のお客様を対象に、Google アナリティクス for Firebase の導入支援を行っております。
また、アプリとWebのクロスプラットフォーム分析ができるGoogle アナリティクス 4 プロパティ(GA4)の導入支援も行っております。
まずは下記よりお気軽にお問い合わせください。

Google アナリティクス for Firebase ・Google アナリティクス 4 プロパティ(GA4) の導入に関するお問い合わせはこちら

関連する記事

【Firebase】Firebase Storageとは?(1)アプリからファイルにアクセスする方法
https://googleanalytics360-suite.e-agency.co.jp/blog/3344/

【Firebase】Firebase Storageとは?(3)ファイルを自動的に削除する方法
https://googleanalytics360-suite.e-agency.co.jp/blog/3309/

この記事をシェア

この記事を書いた人

アバター

広報・PR・マーケティング担当

このライターが書いた記事を見る

私たちは、データを活用した成果貢献のための支援を行っております。
サービスについてお気軽にご相談・お問い合わせください。

資料ダウンロード

デジタルマーケティングに活用いただける様々な資料を
ダウンロードいただけるようご用意しました。

ご相談・お問い合わせ

私たちは、貴社のビジネス成長のためのデータ活用を支援いたします。
支援内容についてはお気軽にご相談・お問い合わせください

このページの先頭へ