簡體   English   中英

如何使用 firebase 和 Picasso 庫更新用戶個人資料圖片

[英]how to update user profile image using firebase and Picasso library

我正在嘗試在我的應用程序的 Firebase 實時數據庫中更新用戶配置文件圖像,但我無法獲取當前用戶的引用,因為我在另一個活動中聲明了它。

我的代碼和數據庫結構如下:

頭像

在當前圖片和代碼中,我正在手動編寫子節點(gli)的id,因為它是firebase中當前用戶的user_name,請幫助我如何通過編碼為其提供路徑。

代碼:

private void profileImage(){

        pImageRef = FirebaseDatabase.getInstance().getReference("doctors/doctors_registration/gli/pimage"); 👈👈

        pImageRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                String  imageurl=  String.valueOf(dataSnapshot.getValue()) ;
                Toast.makeText(HomeActivity.this, "link:"+imageurl, Toast.LENGTH_SHORT).show();
                Picasso.get()
                        .load(imageurl)
                        .into(profileimg);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }

請查看數據庫結構的屏幕截圖並幫助我如何獲取當前用戶個人資料圖像?

首先,停止忽略錯誤。 至少,請在 onCancelled 方法中添加:

Log.d(TAG, error.getMessage());

另請注意,Picasso 是一個可以幫助您下載圖像而不是在實時數據庫中更新它們的庫。 如果要在現有位置更新圖像,請記住無需先讀取圖像。 要解決此問題,請使用以下代碼行:

pImageRef.updateChildren("yourNewUrl");

在這種情況下,您還可以使用addOnCompleteListener()來查看是否出現問題。

但是,如果您需要在讀取圖像后立即更新圖像,那么在 onDataChange() 方法中,使用以下代碼行:

dataSnapshot.getRef().updateChildren("yourNewUrl");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM