2017-01-07 19 views
0

私はギャラリーからイメージを選択する方法、firebaseストレージにアップロードする方法、そしてそれをonActivityResultに表示する方法などを学びました。私の問題は、私が活動を再開するとイメージがなくなったことです。これは私のコードです:Androidでfirebase storageで最後にアップロードした画像のパスを取得する方法は?

displayLastImage()という名前のメソッドを作成しました。私はこのようなonCreateからこのメソッドを呼び出すと:

private void displayLastImage() { 
    StorageReference newStorageReference = storageReference.child("Photos/car.jpg"); 
    Glide.with(this).using(new FirebaseImageLoader()).load(newStorageReference).into(imageView); 
} 

は完璧に動作しますが、私は、代わりにこのような"Photos/46"path使用してonCreateからメソッドを呼んでいるとき:

private void displayLastImage() { 
    StorageReference newStorageReference = storageReference.child(path); 
    Glide.with(this).using(new FirebaseImageLoader()).load(newStorageReference).into(imageView); 
} 

を私はこのエラーを取得します: java.lang.IllegalArgumentException: childName cannot be null or empty。最終的にアップロードされた画像のpathをどうすれば正しく表示できるのですか?

ありがとうございます!

答えて

0

イメージをアップロードするときに、ユーザーがギャラリーから選択したイメージに基づくパスにイメージを保存します。

String path = storageReference.getPath(); 

アクティビティを再起動すると、パスが初期化されていないため、未知のパスで画像をルックアップしようとしています。

これは、アクティビティの呼び出し間のパスを「記憶」する必要があることを意味します。あなたはあなたのアプリの共有環境設定にそれを保存することができます。これらはアクティビティ間で保持されます。

一般的には、画像パス(またはそのダウンロードURL)をFirebaseデータベースなどのクラウドストレージに保存することです。その例をFirebase Codelab for Androidに見ることができます。

+0

イメージパスをFirebaseデータベースに保存しました。これで正しく検索できます。完璧に動作します!そんなにフランクありがとう! –

関連する問題