ios - Firebase 存储删除 uidd 图像

标签 ios swift firebase firebase-storage

我正在尝试从 Firebase 存储中删除一个 uuid 图像。当我添加一个 uuid 图像时,我可以从 tableview 中删除它,但不能从 Firebase 存储中删除它。如果我添加一个没有 uuid 的图像,我可以毫无问题地用图像名称删除它。我的问题是如何获取 uuid 图像名称作为引用。

这是我在 Firebase 存储中上传图片(在 AddViewController 中)的代码:

@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

这是我在 Firebase 存储中删除图像(在 mainViewController 中)的代码:

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")
            }
        }

最佳答案

UUID 是唯一的,创建新的 UUID(就像调用 UUID() 时所做的那样)正在生成一个新的 UUID(有可能发生碰撞)。你应该在你的单元模型中保存对象标识符(它的 UUID)

关于ios - Firebase 存储删除 uidd 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58766789/

相关文章:

ios - Xamarin Forms 中的推送通知

ios - 无法从在 TextField 上打开的 UIActionSheet 内部使用的 UIDatePicker 获取日期单击

ios - 使用 RestKit 执行同步请求

swift - Swift 中闭包的强引用循环

Android 应用未收到 firebase 通知

node.js - VueFire vs Vue.js + Node.js vs Vue.js + Feathers 优缺点和差异

ios - 如何在 ios 中发送带有链接和图像的自定义推文?

ios - NSLocationWhenInUseUsageDescription 错误一直显示

SwiftUI TextField 绑定(bind)到简单模型(非类结构)

java - 名称为 [DEFAULT] 的 FirebaseApp 不存在。 (对于 Spring 启动)