Arrays 如何从阵列中删除Firebase快照?

Arrays 如何从阵列中删除Firebase快照?,arrays,swift,firebase,swift2,firebase-realtime-database,Arrays,Swift,Firebase,Swift2,Firebase Realtime Database,我有一个函数,用于侦听添加到Firebase数据库的新对象,将这些新对象附加到数组,然后使用该数组填充tableView。我不知道删除对象后如何从数组中删除它。我想我的思路是对的,但我不知道如何“撤销”追加 以下是我目前掌握的情况: func configureDatabase() { // Listen for new messages in the Firebase database let ref = self.rootRef.child("invites").obser

我有一个函数,用于侦听添加到Firebase数据库的新对象,将这些新对象附加到数组,然后使用该数组填充tableView。我不知道删除对象后如何从数组中删除它。我想我的思路是对的,但我不知道如何“撤销”追加

以下是我目前掌握的情况:

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]
}

我在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
  }

我在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
  }