Я загружаю несколько изображений в Firebase-Storage.
Проблема в том, если я пытаюсь загрузить 5 изображений. 2/5 изображений загружаются, и я убиваю приложение, удаляю его, не открывая заново, затем два изображения загружаются в хранилище Firebase, а остальные 3 - нет. И способ, которым я сохраняю «URL-адрес загрузки», похож на то, что, если все 5 изображений загружены, сохраните URL-адрес с другими данными в Firestore, а в случае сбоя не сохраняйте URL-адрес загрузки, что означает, что другие данные не будут загруженыв Firestore.
Это функция, которую я использую для загрузки нескольких изображений в базу данных.
private fun uploadImages() {
// to store mutliple url's
val imagesUrl = ArrayList<String>()
// mUriImagesList is an arraylist of images
if (mUriImagesList.isNotEmpty()) {
for (image in mUriImagesList) {
// ref = some storage path //
val uploadTask = ref.putFile(image)
val urlTask = uploadTask.continueWithTask { task ->
if(!task.isSuccessful) {
task.exception?.let {
throw it
}
}
ref.downloadUrl
}.addOnCompleteListener { task ->
val downloadUri = task.result
imagesUrl.add(downloadUri.toString())
if(imagesUrl.size == mUriImagesList.size) {
// some other data which will uploaded to firestore if all the images get uploaded to storage
uploadMomentData(imagesUrl)
}
} else {
Log.w(NEW_FRAGMENT_TAG, "Task FAILED")
}
}
}
}
}
Есть ли способ удалить эти 2 изображения из хранилища, есливсе изображения не удалось загрузить? - Я думал написать облачную функцию, но каково будет условие? Поскольку нет способа определить, что данные, загруженные в Firebase-хранилище, никак не связаны с firestore (по URL загрузки).