[英]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.