2017-07-13 13 views
0

Firebaseからダウンロードしたファイルからローカルパスを取得する方法:https://firebase.google.com/docs/storage/android/download-files私はFirebaseドキュメントで少し混乱していますストレージ

私が取得し、ファイルのURLを通じてFirebaseからファイルをダウンロードし、しようとしていますが、そのローカルパス:

mStorageReference.getFile(downloadURL).addOnSuccessListener(new 
    OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 

    @Override 
    public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 

     // I assume the file is now downloaded from the given URL and is on the device 
     // HOW DO I GET THE PATH TO THE FILE ON THE DEVICE ? 
    } 
}); 

質問はコメントにあります。ドキュメントから

+0

私のファイル名がファイル名からファイル名-13557732.pdfに変更された理由を教えてください。 – Camille

答えて

2

: -

はgetFile()メソッドは、ローカルデバイスに直接ファイルをダウンロードします。

したがって、実行中の作業ではなく、まず一時ファイルを作成することができます。 以下は例です: - その後

File localFile = File.createTempFile("images", "jpg"); 

、あなたが(代わりにdownloadURLを渡すの)あなたのgetFile()メソッドにパラメータとしてこのlocalFileを渡します。したがって、onSuccess()が実行された場合、このファイルにはダウンロードされたデータが入力され、必要なときにアクセスできます。このような何か: -

mStorageReference.getFile(localFile).addOnSuccessListener(new 
OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 

@Override 
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
     //localFile contains your downloaded data 

} 
}); 

(注)この例では、localFileは一時的ですが、あなたもあなたの指定されたパスにファイルを作成することができます。ユースケースによって異なります。

+3

@Camille:これとあなたの理解の違いは、Firebaseが指定したローカルファイルにデータをダウンロードすることです。 FirebaseにCloud Storage **からダウンロードするファイルとダウンロードする場所を**に指定します。ファイルをアップロードするときと非常に似ています。アップロードするファイル(または他のデータストリーム)とアップロード先を指定します。こちらのドキュメントをご覧ください:https://firebase.google.com/docs/storage/android/download-files#download_to_a_local_file –

関連する問題