如何使用 firebase 和 Picasso 库更新用户个人资料图片
how to update user profile image using firebase and Picasso library
我正在尝试在我的应用程序的 Firebase 实时数据库中更新用户个人资料图像,但我无法获得当前用户的引用,因为我在另一个 activity 中声明了它。
我的代码和数据库结构如下:
profile image
在当前图片和代码中,我正在手动编写子节点(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");
我正在尝试在我的应用程序的 Firebase 实时数据库中更新用户个人资料图像,但我无法获得当前用户的引用,因为我在另一个 activity 中声明了它。
我的代码和数据库结构如下:
profile image
在当前图片和代码中,我正在手动编写子节点(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");