根据 userId firebase 使用 picasso 获取图像
get image with picasso based on userId firebase
我正在尝试为用户配置文件上传和下载图片,当我保存照片时,我将其与 userId 一起保存,这样每次他更改照片时我都可以替换它,现在我需要的是获取它与毕加索的照片,问题是,我不知道如何获取照片,它可以有不同的格式和其他东西,如 jpeg、png,我只想在用户 ID 匹配时获取图像,我试过这个:
storageRef = storage.getReferenceFromUrl("gs://friendlymanager-3b7a2.appspot.com");
Picasso.with(UserSettings.this).load(storageRef + "/Photos/" + userId).into(userImage);
我的 userImage 是我的 imageView,我没有得到任何错误只是一个空白图像,我已经有特定用户的照片。
有什么帮助吗?
在使用 Picasso 或 glide 等从 Firebase 存储中获取图像时,您应该使用 getDownloadUrl()
你必须像这样下载 link,
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();
}
});
考虑使用 Firebase-UI Android library,它使您能够直接从存储引用加载图像。在你的情况下,它看起来像这样
我不确定是否支持 Picasso,但你可以使用 Glide
例如:
mStorageRef = FirebaseStorage.getInstance().getReference();
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(mStorageRef + "/Photos/" + userId)
.error(R.drawable.default)
.into(imageView);
我正在尝试为用户配置文件上传和下载图片,当我保存照片时,我将其与 userId 一起保存,这样每次他更改照片时我都可以替换它,现在我需要的是获取它与毕加索的照片,问题是,我不知道如何获取照片,它可以有不同的格式和其他东西,如 jpeg、png,我只想在用户 ID 匹配时获取图像,我试过这个:
storageRef = storage.getReferenceFromUrl("gs://friendlymanager-3b7a2.appspot.com");
Picasso.with(UserSettings.this).load(storageRef + "/Photos/" + userId).into(userImage);
我的 userImage 是我的 imageView,我没有得到任何错误只是一个空白图像,我已经有特定用户的照片。
有什么帮助吗?
在使用 Picasso 或 glide 等从 Firebase 存储中获取图像时,您应该使用 getDownloadUrl()
你必须像这样下载 link,
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();
}
});
考虑使用 Firebase-UI Android library,它使您能够直接从存储引用加载图像。在你的情况下,它看起来像这样
我不确定是否支持 Picasso,但你可以使用 Glide 例如:
mStorageRef = FirebaseStorage.getInstance().getReference();
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(mStorageRef + "/Photos/" + userId)
.error(R.drawable.default)
.into(imageView);