Есть ли способ удалить данные Firebase-Storage, если все данные не были загружены? - PullRequest
1 голос
/ 02 ноября 2019

Я загружаю несколько изображений в 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 загрузки).

...