Удаление изображения в виде таблицы из Firebase Storage - PullRequest
0 голосов
/ 11 июня 2019

У меня есть таблица с изображениями, которые пользователи будут загружать.Теперь я пытаюсь добавить кнопку удаления, если пользователь НЕ хочет больше этого изображения.

Возможно, я просто устал в своей голове и не могу найти решение для этого, но я чувствую, что я как бы застрял прямо сейчас.

Так что, когда я нажимаю на строку таблицы.(DidSelectRow) должен получить имя образа Firebase Storage.Как на картинке ниже:

здесь вы идете

Я не понимаю, как я могу получить имя файла из таблицы.Вы знаете?

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
    deletePathFromArray = indexPath.row
    deleteName = UUID().uuidString
    print(indexPath)
}

Это то, что я до сих пор.(deletePathFromArray просто удалит его из таблицы, а не из хранилища)

Также у меня есть это:

let deleteRef = storageRef.child(deleteName)
        deleteRef.delete { (err) in
            if let err = err
            {
                print(err.localizedDescription)
            }
            else
            {
                print("Successfully deleted image!")
            }
        }

1 Ответ

0 голосов
/ 11 июня 2019

Подход - это проблема ... Это концептуальный ответ, который даст руководство относительно общей структуры и процесса.

Когда изображение загружено в хранилище , вам будет предоставлен URL, который является ссылкой на это изображение. Эта ссылка должна храниться в Firestore или RTDB.

Ваш tableView должен быть поддержан источником данных . Когда изображения первоначально загружаются, типичный шаблон проектирования должен иметь класс или структуру, которая представляет эти данные. Например, в RTDB у нас будет

users_images
    uid_0
       image_id_0 //created with .childByAutoId
          image_url: "http.... reference to the image in Storage"
          title: "My Visit To Paris"

и класс, который будет содержать это

class UserImageClass {
   var key = ""
   var uid = ""
   var title = ""
   var url = ""
}

затем эти классы сохраняются в массиве, который является источником данных для вашего tableView

class ViewController: NSViewController {
    var imagesArray = [UserImageClass]()

Оттуда, если пользователь проведет пальцем по удалению, вы узнаете индекс строки, по которой он проводил, затем вы можете получить объект из массива dataSource. Из этого вы узнаете URL-ссылку на изображение в хранилище, чтобы его можно было удалить, а затем также ключ к узлу в RTDB, чтобы его можно было удалить.

...