从TableView中删除Firebase数据库中的值

时间:2019-04-09 02:46:26

标签: swift firebase

我有一个Firebase数据库,该数据库在下面的(1)中具有以下设置。我通过以下方式(2)来命名市场。

然后,我将市场名称(在这种情况下为雅典和特拉华州)加载到表格视图中。 (3)

如何从tableView中删除一行并将其从Firebase数据库中删除?

(1)
{
  "Markets" : {
    "Athens" : {
      "Item" : {
        "name" : "Beef",
        "price" : 10,
        "salePrice" : 3
      }
    },
    "Delaware" : {
      "Item" : {
        "name" : "Steak",
        "price" : 12,
        "salePrice" : 3
      }
    }
  }
}


(2)
let ref = Database.database().reference()
var myKey = [Any]()

    override func viewDidLoad() {
        super.viewDidLoad()

        ref.child("Markets").observeSingleEvent(of: .value, with: { (snapshot) in

            let allMarkets = (snapshot.value as! NSMutableDictionary).allKeys
            self.myKey = allMarkets
            self.tableView.reloadData()
            print(self.myKey, " This is the printing of my key")
        })

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        let allMarkets = myKey[indexPath.row]

        cell.textLabel?.text = allMarkets as? String
        return cell
    }

1 个答案:

答案 0 :(得分:0)

假设您在这些Firebase节点上有观察者,则删除Firebase中的节点。这将在您的应用中触发一个.childRemoved事件,并将该事件传递给已删除的节点。从tableView数据源中删除它,然后重新加载tableView。

从Firebase中删除该行,然后从tableView数据源中删除该行。然后重新加载tableView。