2016-06-26 2 views
0

У меня есть функция, которая прослушивает новые объекты, добавленные в базу данных Firebase, добавляет эти новые объекты в массив и затем заполняет tableView с использованием этого массива. Я не могу понять, как удалить объект из массива после его удаления. Я думаю, что я на правильном пути, но я не знаю, как «отменить» приложение.Как удалить моментальный снимок Firebase из массива?

Вот что я до сих пор:

func configureDatabase() { 

    // Listen for new messages in the Firebase database 
    let ref = self.rootRef.child("invites").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 

    self.invites.append(snapshot) 
    self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: self.invites.count-1, inSection: 0)], withRowAnimation: .Automatic) 
    }) 

    //listen for deleted messages in Firebase database 
    let ref2 = self.rootRef.child("invites").observeEventType(.ChildRemoved, withBlock: { (snapshot) -> Void in 

    //remove from invites array and refresh table?? 
    }) 
} 

Должен ли я передать значение из фактической ячейки в таблице?

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("AlertCell", forIndexPath: indexPath) as! AlertCell 

     //get user, set cell text 
     let inviteDict = invites[indexPath.row].value as! [String : AnyObject] 
} 

ответ

3

Я нашел ответ в примере кода на Firebase сайте:

// Listen for deleted comments in the Firebase database 
    commentsRef.observeEventType(.ChildRemoved, withBlock: { (snapshot) -> Void in 
     let index = self.indexOfMessage(snapshot) 
     self.comments.removeAtIndex(index) 
     self.tableView.deleteRowsAtIndexPaths([NSIndexPath(forRow: index, inSection: 1)], withRowAnimation: UITableViewRowAnimation.Automatic) 
    }) 

func indexOfMessage(snapshot: FIRDataSnapshot) -> Int { 
    var index = 0 
    for comment in self.comments { 
     if (snapshot.key == comment.key) { 
     return index 
     } 
     index += 1 
    } 
    return -1 
    } 
Смежные вопросы