Загрузите изображение, находящееся в хранилище Firebase - PullRequest
0 голосов
/ 23 апреля 2019

У меня проблема при попытке загрузить изображение, расположенное в Firebase Storage. В моем проекте Firebase я храню изображение с именем "profile.png" в папке с именем "imgProjects".

Выполняя поиск в StackOverflow, я нашел несколько ответов, которые указывают на использование Glide для загрузки изображения в элемент "ImageView", но у меня не работает ...

В своей деятельности я пробовал:

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);

Я определил «MyAppGlideModule» в классе файлов Java

@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: //" или относительный путь.

Извините, но ... Что я могу сделать, чтобы решить мою проблему?

1 Ответ

0 голосов
/ 24 апреля 2019

вы можете получить свое изображение, если вы знаете, как называется ваше изображение, как это: -

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(); 
                }
            }
        });
...