2016-12-04 60 views
0

我有一個酒吧檯,並希望使用該欄的存儲圖片來自它刪除單個酒吧。我使用酒吧的名字來刪除酒吧。刪除對象的火力

酒吧名稱是獨一無二的 - 我查詢酒吧的名稱之前添加一個新酒吧,以確保沒有兩個酒吧有相同的名稱。

這是我的功能,我如何做到這一點。從數據庫中刪除欄對象時遇到問題。當然,當我這樣做時,它刪除了整個酒吧的表格。有沒有辦法讓欄的autoId的鍵或id能夠刪除它。什麼是正確的做法。

func deleteBar(name:String ,completion:@escaping (_ status:Bool, _ msg:String?)->()) 
{ 
    let ref = FIRDatabase.database().reference(fromURL: dbURL).child("bars").child(name) 
    storage = FIRStorage.storage() 

    // print(key) 

    let locationRef = FIRDatabase.database().reference(fromURL: dbURL).child("bar_locations") 
    //delete from bars 
    ref.parent?.removeValue() //This deleted the whole bars table 
    //delete from location 
    locationRef.child(name).removeValue() 

    let storageRef = storage?.reference(forURL: storageURL).child("bars").child(name).child("logo.jpg") 
    storageRef?.delete(completion: { (err) in 

     if err == nil { 

      completion(true, "Deleted") 

     } else { 
      //print(err?.localizedDescription ?? <#default value#>) 
      completion(false, err?.localizedDescription) 
     } 
    }) 

} 
+0

可以存儲參考或路徑在火力地堡數據庫的存儲數據。此外,檢查出[刪除文件](https://firebase.google.com/docs/storage/ios/delete-files) – Jay

+0

@Jay我的問題是不是在我的存儲刪除文件。問題是刪除我的酒吧表中的一個對象。酒吧表包含酒吧的ID,每個ID都有酒吧名稱,酒吧類別等屬性......重點是我想知道酒吧名稱的ID以便能夠刪除它。 –

+0

問題說成*在火力刪除對象*,所以它假設您想刪除火力的對象。如果問題是如何從一個表中刪除的對象(我假設你在代碼中的表?),你應該更新你的問題。如果你問如何得到父節點名,一看便知[本問題](http://stackoverflow.com/questions/40876616/how-to-check-for-value-in-firebase-that-is-下一個 - 自動識別孩子持有?noredirect = 1個#comment68990882_40876616)。這是一個無關的問題,但答案顯示了您可能想要使用的設計模式的一個示例。 – Jay

回答