加载位于 firebase 存储中的图像
Load an image located in firebase storage
我在尝试加载位于 Firebase 存储中的图像时遇到问题。在我的 Firebase 项目中,我在名为 "imgProjects".
的文件夹中存储了一个名为 "profile.png" 的图像
在 Whosebug 中搜索,我找到了一些指示使用 Glide 将图像加载到 "ImageView" 元素中的答案,但对我不起作用...
在我的 activity 中,我试过:
FirebaseStorage storage2 = FirebaseStorage.getInstance("gs://myURLfirebaseProjecy/profile.png"); //I get this URL through firebase console
Glide.with(this)
.load(storage2)
.into(imgPerfil);
和
StorageReference storageRef = storage.getReference();
StorageReference imagesRef = storageRef.child("imgProjects\profile.png");
Glide.with(this)
.load(imagesRef)
.into(imgPerfil);
我在 java 文件中定义了 "MyAppGlideModule" class
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
// Register FirebaseImageLoader to handle StorageReference
registry.append(StorageReference.class, InputStream.class,
new FirebaseImageLoader.Factory());
}
}
我设置了依赖:
implementation 'com.firebaseui:firebase-ui-storage:3.3.0'
implementation 'com.google.firebase:firebase-storage:16.0.5'
当我加载 Activity 时,ImageView 是空的...我需要使用 "gs://" 引用或相对路径。
抱歉,但是...我该怎么做才能解决我的问题?
如果你知道图像的名称,就可以得到你的图像:-
StorageReference mImageStorage = FirebaseStorage.getInstance().getReference();
StorageReference ref = mImageStorage.child("storage name")
.child("your image name.jpg");
ref.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downUri = task.getResult();
String imageUrl = downUri.toString();
Toast.makeText(MainActivity.this, imageUrl , Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, ""+task.getException(), Toast.LENGTH_SHORT).show();
}
}
});
我在尝试加载位于 Firebase 存储中的图像时遇到问题。在我的 Firebase 项目中,我在名为 "imgProjects".
的文件夹中存储了一个名为 "profile.png" 的图像在 Whosebug 中搜索,我找到了一些指示使用 Glide 将图像加载到 "ImageView" 元素中的答案,但对我不起作用...
在我的 activity 中,我试过:
FirebaseStorage storage2 = FirebaseStorage.getInstance("gs://myURLfirebaseProjecy/profile.png"); //I get this URL through firebase console
Glide.with(this)
.load(storage2)
.into(imgPerfil);
和
StorageReference storageRef = storage.getReference();
StorageReference imagesRef = storageRef.child("imgProjects\profile.png");
Glide.with(this)
.load(imagesRef)
.into(imgPerfil);
我在 java 文件中定义了 "MyAppGlideModule" class
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
// Register FirebaseImageLoader to handle StorageReference
registry.append(StorageReference.class, InputStream.class,
new FirebaseImageLoader.Factory());
}
}
我设置了依赖:
implementation 'com.firebaseui:firebase-ui-storage:3.3.0'
implementation 'com.google.firebase:firebase-storage:16.0.5'
当我加载 Activity 时,ImageView 是空的...我需要使用 "gs://" 引用或相对路径。
抱歉,但是...我该怎么做才能解决我的问题?
如果你知道图像的名称,就可以得到你的图像:-
StorageReference mImageStorage = FirebaseStorage.getInstance().getReference();
StorageReference ref = mImageStorage.child("storage name")
.child("your image name.jpg");
ref.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downUri = task.getResult();
String imageUrl = downUri.toString();
Toast.makeText(MainActivity.this, imageUrl , Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, ""+task.getException(), Toast.LENGTH_SHORT).show();
}
}
});