簡體   English   中英

從Firebase存儲中刪除tableview圖像

[英]Deleting tableview image from Firebase Storage

我有一個用戶將上傳的圖片的tableview。 現在我正在嘗試添加刪除按鈕,如果用戶不再需要該圖像。

也許我只是厭倦了,無法找到解決方案,但我覺得我現在有點卡住了。

所以當我點擊tableview行時。 (DidSelectRow)它應該檢索Firebase存儲圖像名稱。 如下圖所示:

干得好

我不明白如何從tableview獲取文件名。 你知道嗎?

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

這是我到目前為止。 (deletePathFromArray只會從tableview中刪除它,而不是從存儲中刪除)

我也是這樣的:

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

方法就是問題......這是一個概念性答案,將為整體結構和流程提供方向。

將圖像上傳到存儲時 ,將為您提供一個URL,該URL是對該圖像的反射。 該引用應存儲在Firestore或RTDB中。

您的tableView應該由dataSource支持 最初加載圖像時,典型的設計模式是具有表示該數據的類或結構。 例如,我們可以在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的dataSource

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

從那里,如果用戶滑動刪除,您將知道他們刷過的行的索引,然后您可以從dataSource數組中獲取該對象。 從那里,您將知道存儲中對圖像的URL引用,因此可以刪除它,然后還可以刪除RTDB中節點的鍵,以便刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM