2017-08-31 56 views
0

這個問題沒有直接的答案,我嘗試了各種方法。我需要將存儲在我的Firebase數據庫中的圖像顯示在ImageView中。從imagebase數據庫在imageview中顯示圖像

這是當前代碼我有,這是行不通的:

mUsersDB_photoUrl.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String photoUrl = dataSnapshot.child("photoUrl").getValue(String.class); 
      try { 
       Picasso.with(DisplayActivity.this).load(photoUrl).placeholder(R.mipmap.ic_launcher).into(Photo); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

方法調用的用戶名的作品:

mUsersDB_name.addValueEventListener(new ValueEventListener() { 
     @Override 

     public void onDataChange(DataSnapshot dataSnapshot) { 
      Name.setText(dataSnapshot.getValue(String.class)); 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

我沒有那麼偉大,在所有這一切,我自學Firebase。指針和指導表示歡迎。

回答

0

好..先設置登錄驗證碼線以下,並檢查照片的URL是否有效。

String photoUrl = dataSnapshot.child("photoUrl").getValue(String.class); 

然後使用滑行到圖像設置爲ImageView的

Glide.with([CONTEXT]).load([IMAGE_URL]).into([IMAGE_VIEW]); 

注意:如果你想使用的畢加索,你有你的情況下傳遞給with([CONTEXT])

0

您使用的畢加索,所以我建議您在獲取圖像時使用getDownloadUrl()。

StorageReference storageRef = storage.getReference().child("profiles").child(myAccount.getUID()).child("profile");//reach out to your photo file hierarchically 
     storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
      @Override 
      public void onSuccess(Uri uri) { 
       Log.d("URI", uri.toString()); //check path is correct or not ? 
       Picasso.with(DisplayActivity.this).load(uri.toString()).into(imageView); 
      } 
     }).addOnFailureListener(new OnFailureListener() { 
@Override 
public void onFailure(@NonNull Exception exception) { 
    // Handle errors 
} 
}); 
+0

您好,我有一個問題「Picasso.with(上下文)」它說:「不能解析符號」單詞「背景」 - 有從未與原木加工或畢加索方面,我不知道如何解決它。 –

+0

將其替換爲'DisplayActivity.this'或'getContext()' –

+0

@TestUser在搜索框中使用Android監視器選項類型'URI'並檢查路徑是否有效。如果不是,則更改'storage.getReference()。child(「<您的照片文件路徑>」); –

0

我最終只是改變了我的數據庫引用。 (代碼的第一行)

完美地工作。

mUsersDB.child(user_id).addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String photoUrl = dataSnapshot.child("photoUrl").getValue(String.class); 
      try { 
       Picasso.with(DisplayActivity.this).load(photoUrl).placeholder(R.mipmap.ic_launcher).into(disPhoto); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    });