2017-07-28 39 views
0

如何將用戶默認個人資料圖片(誰通過谷歌身份驗證)放入Firebase存儲中?如何在firebase android中存儲經過身份驗證的用戶個人資料圖片?

private StorageReference stRef; 
private DatabaseReference userDb; 
private FirebaseAuth mAuth; 

Users users1 = new Users(mAuth.getCurrentUser().getDisplayName(),mAuth.getCurrentUser().getEmail() 
               ,mAuth.getCurrentUser().getUid(), 
               new SimpleDateFormat("yyyy-MM-dd").format(new Date()),studyDetails,mAuth.getCurrentUser().getPhotoUrl()); 
             userDb.child(mAuth.getCurrentUser().getUid()).setValue(users1); 

這未能在數據庫中存儲

+0

你的問題是不明確的,你想要什麼到底是什麼?如果您有任何問題可以幫助您,請放置您的代碼。 – Pipiks

+0

我想顯示所有正在使用我的應用程序的用戶圖像。如何操作?.Say用戶使用Google帳戶進行身份驗證。 –

+0

來自auth提供商的默認圖像?像谷歌,Facebook? – Pipiks

回答

0
 //while storing user details 

     Users users1 = new Users(mAuth.getCurrentUser().getDisplayName(),mAuth.getCurrentUser().getEmail() 
               ,mAuth.getCurrentUser().getUid(), 
               new SimpleDateFormat("yyyy-MM-dd").format(new Date()),studyDetails,mAuth.getCurrentUser().getPhotoUrl().toString()); 
             userDb.child(mAuth.getCurrentUser().getUid()).setValue(users1); 

     //While Retriving user datials 

     holder.txtName.setText(users.getsUserName()); 
       holder.txtEmial.setText(users.getsEmailId()); 
       holder.txtJoined.setText("Joined on: "+users.getsDateJoined()); 
       Uri uri = Uri.parse(users.getPhotoUri()); 
       Picasso.with(context) 
         .load(uri) 
         .transform(new CircleTransform()) 
         .resize(150, 150) 
         .centerCrop() 
         .into(holder.imageView); 
+0

這工作正常。在存儲之前,我將uri轉換爲字符串。 –

1

您可以訪問該用戶的圖片提供:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

if (user != null) { 
    Uri photoUrl = user.getPhotoUrl(); 
} 

Here the auth user documentation.

然後你可以使用像GlidePicasso一個lib到顯示它。

設置用戶圖片:

mDatabase.child("users").child(userId).child("photoUrl").setValue(photoUrl); 

檢索其他用戶的圖片:

mDatabase.child("users").child(userId).child("photoUrl").addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String photoUrl = (String) dataSnapshot.getValue(); 
    } 

    @Override 
    public void onCancelled(FirebaseError firebaseError) { 

    } 
}); 

Here the realtime database documentation.

+0

雅這隻適用於當前用戶。但其他用戶如何使用我的應用程序。 –

+0

String photoUrl =(String)dataSnapshot.getValue(); // String photoUrl or Uri photoUrl –

+0

你只需要'Uri url = Uri.parse(photoUrl)' – Pipiks

相關問題