Firebase Storage и изображения для Android
Поэтому я хочу получить изображение из хранилища Firebase (у меня есть общедоступные правила).
Это то, что у меня есть
ImageView image = (ImageView)findViewById(R.id.imageView);
Glide.with(this)
.load("https://firebasestorage.googleapis.com/v0/b/test-7c916.appspot.com/o/images.jpg?alt=media&token=b207cb11-9ad5-48e3-86ac-1dcb07ee6013")
.into(image);
И я вместо того, чтобы использовать ссылку https. Я хочу использовать ссылку на хранилище. Но каждый раз, когда я пытаюсь использовать ссылку на хранилище, мое приложение вылетает. Пожалуйста помоги.
Как и метод.child().
2 ответа
Вам нужно использовать StorageReference
загрузить образ хранилища Firebase.
// Reference to an image file in Cloud Storage
StorageReference storageReference = = FirebaseStorage.getInstance().getReference().child("myimage");
ImageView image = (ImageView)findViewById(R.id.imageView);
// Load the image using Glide
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(image );
Для получения более подробной информации вы можете проверить Использование FirebaseUI для загрузки и отображения изображений.
Поместите этот класс FirebaseImageLoader.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());
}
}
Где вы хотите загрузить изображение Coad, как показано ниже.
StorageReference storageReference = FirebaseStorage
.getInstance().getReference().child("myimage");
Glide.with(getApplicationContext())
.load(completeStorageRefranceToImage)
.into(imageView);
Так использовал код pRaNaY, как это
StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("images.jpg");
ImageView image = (ImageView)findViewById(R.id.imageView);
Glide.with(this).using(new FirebaseImageLoader()).load(storageReference).into(image );
Причина, по которой я хочу использовать ссылку, заключается в том, что у меня будут имена всех изображений в текстовом файле, и я буду читать имена изображений из него и создаю цикл while, чтобы загрузить все нужные мне изображения в нужное место.
Еще один вопрос: как мне узнать, является ли изображение нулевым, не проверяя, является ли ImageView нулевым?