Чтобы загрузить растровое изображение в хранилище FireBase, вам нужно превратить его в байтовый массив. Вы можете сделать это, создав ByteArrayOutputStream.
ByteArrayOutputStream boas = new ByteArrayOutputStream();
Затем сожмите растровое изображение в формат, подобный JPEG или PNG. Метод сжатия принимает 3 параметра: формат, качество и ByteArrayOutputStream.
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, boas);
Затем создайте ссылку на свой FireBase Storage Reference, куда вы хотите поместить фотографию.
String imageFileName = "ExampleName";
StorageReference ref = FirebaseStorage.getInstance().getReference().child("images").child(imageFileName);
Здесь я создал папку с именем images и файл внутри, который назван с использованием ранее созданной строки imageFileName
Затем я могу загрузить его в FireBase с помощью UploadTask, сказав
UploadTask task = ref.putBytes(data);
Используя это задание, вы можете создавать прослушиватели успеха и неудач.
task.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});