2017-03-20 7 views
2

가능한 경우 도와주세요. 사용자가 removeValue 메서드를 사용하여 deleteSection 함수를 호출 할 때 tableView에서 데이터를 제거하려고합니다.Firebase 데이터베이스 스위프트 3에서 하위 데이터 제거

class Item : NSObject { 

    var itemName: String! 
    var itemDate: String! 
    var itemID: String! 

    init(itemName: String, itemDate: String, itemID: String) { 

     self.itemName = itemName 
     self.itemDate = itemDate 
     self.itemID = itemID 



    } 

    init(snapshot: FIRDataSnapshot) { 

     let snapshotValue = snapshot.value as? NSDictionary 

     self.itemName = snapshotValue!["itemName"] as! String 
     self.itemDate = snapshotValue!["itemDate"] as! String 
     self.itemID = snapshotValue!["itemID"] as! String 
    } 

     func toAnyObject() -> [String: AnyObject] { 
      return ["itemName": itemName as AnyObject, "itemDate": itemDate as AnyObject, "itemID": itemID as AnyObject] 
    } 


} 

가 지금은 사용자의 항목 ID 내부의 값을 삭제하고 싶지만 여기에서 갈 곳 확실하지 않다 : 지금까지 나는 항목에 대한 클래스가 내가 당신을 생각

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 

    guard let uid = FIRAuth.auth()?.currentUser?.uid else { 
     return 
    } 

    let item = itemArray[indexPath.row] 
    let itemID = databaseRef.child("ItemID") 

    databaseRef.child("users").child(uid).child("usersList").child(itemID).removeValue() 

답변

0

을 '삭제'편집 스타일이 누락되었습니다 & 약간의 수정이 필요한 참조. 이것을보십시오 :

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 

    guard let uid = FIRAuth.auth()?.currentUser?.uid else { 
     return 
    } 

    let item = items[indexPath.row] 
    let itemID = ref.child("users").child(uid).child("usersList").child("ItemID") 

    if editingStyle == .delete { 
     item.ref?.removeValue() 
    } 

} 
+0

"표현 유형 'Void'(일명 '()')이 더 많은 컨텍스트없이 애매하다고 말하면서 작동하지 않습니다." – Chace

+0

표시되는 오류는 어느 라인입니까? @Chace – Trev14

+0

마지막 줄에 databaseRef.child를 보여주고 있습니다 ... @ Trev14 – Chace

관련 문제