2017-04-13 11 views
4

画像をアップロードしてユーザープロファイル用にダウンロードしようとしていますが、写真を保存するときにuserIdで保存するので、写真を変更するたびに置き換えることができます私はピカソでその写真を取得する必要がある、事は、私は写真を取得する方法がわからない、それはjpeg、PNGのような様々な形式や他のものを持つことができます、私はちょうどuserIDが一致すると、私はこれを試してみました:userId firebaseに基づいてピカソで画像を取得

storageRef = storage.getReferenceFromUrl("gs://friendlymanager-3b7a2.appspot.com"); 

Picasso.with(UserSettings.this).load(storageRef + "/Photos/" + userId).into(userImage); 

私userImageが私のImageViewのですが、私はどのerrosにちょうど空白の画像を得ることはありません、私はすでに特定のユーザーの写真を持っています。

助けが必要ですか?などピカソを使用してOR滑空Firebaseストレージからイメージをフェッチしている間に

+0

あなたのリンクは画像を返していますか? –

+0

どうすれば確認できますか? –

+0

最終的なURLを記録します。 'Log.d(" URL "、storageRef +"/Photos/"+ userId);' –

答えて

2

はあなたにロードする機能を与えるFirebase-UI Android libraryを使用することを検討してgetDownloadUrl()を使用する必要があります直接ストレージrefからの画像。あなたのケースでは、私はピカソがサポートされているかはわからないが、あなたは、たとえばGlide を使用することができ、この

次のようになります。

mStorageRef = FirebaseStorage.getInstance().getReference(); 

Glide.with(this /* context */) 
    .using(new FirebaseImageLoader()) 
    .load(mStorageRef + "/Photos/" + userId) 
    .error(R.drawable.default) 
    .into(imageView); 
+0

はうまく見えますが、画像フォーマットを知る必要がありますか?(jpeg、png)? –

+0

いいえグライドはあなたのためのすべての幻想的なものを扱い、また同様にキャッシングします –

+0

いいです、私はそれをテストします、私はすぐにフィードバックを与える –

2
あなたは、このようなダウンロードリンクを取得する必要があります

StorageReference storageRef = storage.getReference().child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child(FirebaseAuth.getInstance().getCurrentUser().getUid());//reach out to your photo file hierarchically as stored on firebase 
      storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
       @Override 
       public void onSuccess(Uri uri) { 
        Log.e("URI", uri.toString()); 
        Glide.with(SaveUserActivity.this).load(uri).into(profile_image); 
        url = uri.toString(); 

       } 
      }); 
+0

私はどこにuriを渡すのですか? –

+0

イメージを読み込むためにグライドを使用しましたが、picasso alasoにはUriを使用してイメージをロードするメソッドがあります。 このようなものはありませんPicasso.with(context).load(uri).into(imageView); –

関連する問題