Firebase хранилище удалить образ uidd - PullRequest
1 голос
/ 08 ноября 2019

Я пытаюсь удалить образ uuid из Firebase Storage. Когда я добавляю образ uuid, я могу удалить его из таблицы, но не из Firebase Storage. Если я добавлю изображение без uuid, я могу без проблем удалить его с именем изображения. Моя проблема заключается в том, как получить имя изображения uuid в качестве ссылки.

Вот мой код для загрузки изображения (в AddViewController) в хранилище Firebase:

@IBAction func saveButtonClicked(_ sender: Any) {

    // STORAGE

    let storage = Storage.storage()
    let storageReference = storage.reference()

    let mediaFolder = storageReference.child("media")

    let userUid = Auth.auth().currentUser?.email!

    if let data = childImageView.image?.jpegData(compressionQuality: 0.2) {

        let uuid = UUID().uuidString

        let imageReference = mediaFolder.child("\(userUid!)/\(uuid).jpg")

        imageReference.putData(data, metadata: nil) { (metadata, error) in
            if error != nil {
                self.makeAlert(titleInput: "Error!", messageInput: error?.localizedDescription ?? "Error")
            } else {

                imageReference.downloadURL { (url, error) in
                    if error == nil {
                        let imageUrl = url?.absoluteString

Вот мой код для удаления изображения (вmainViewController) в хранилище Firebase:

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {

        // STORAGE

        let storage = Storage.storage()
        let storageReference = storage.reference()

        let userUid = Auth.auth().currentUser?.email!
        let uuid = UUID().uuidString

        let mediaFolder = storageReference.child("media").child("\(userUid!)/\(uuid).jpg")

        mediaFolder.delete { (error) in
            if let error = error {
                print("Image Error")
            } else {
                print("Image Deleted")
            }
        }

1 Ответ

1 голос
/ 08 ноября 2019

UUID уникален, и создание нового UUID (как вы делаете, когда вы звоните UUID()) генерирует новый (с вероятностью столкновения из-за несчастного случая). Вы должны хранить идентификатор объекта (его UUID) внутри модели вашей ячейки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...