从firebase数据库中删除

时间:2017-07-30 03:58:29

标签: swift firebase swift3

我正在为练习项目创建在线订购服务。我最近读到的两件事是编辑tableview函数。当我去滑动删除一个项目时,它不会从数据库中取出正确的项目。此外,如果数组中只有一个项目,我尝试删除它会使它崩溃。任何人都知道这是怎么回事?

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

    orderNumber.remove(at: indexPath.row)
    itemsArray.remove(at: indexPath.row)
    priceArray.remove(at: indexPath.row)
    quantityArray.remove(at: indexPath.row)

    databaseRef.child("Users/\((authRef.currentUser?.uid)!)/Order/\(orderNumber.remove(at: indexPath.row))").removeValue { (error, ref) in
        if error != nil {
            print(error?.localizedDescription as Any)
        } else {

        }
    }
}

2 个答案:

答案 0 :(得分:0)

看起来你只需要在删除之前检查数组计数: -

if orderNumber.count > indexPath.row {
 orderNumber.remove(at: indexPath.row)
}
if itemsArray.count > indexPath.row {
 itemsArray.remove(at: indexPath.row)
}
if priceArray.count > indexPath.row {
 priceArray.remove(at: indexPath.row)
}
if quantityArray.count > indexPath.row {
 quantityArray.remove(at: indexPath.row)
}

答案 1 :(得分:0)

显然,您要从orderNumber两次删除。首先,你要在这里删除:

orderNumber.remove(at: indexPath.row)

然后你在这里删除:

child("Users/\((authRef.currentUser?.uid)!)/Order/\(orderNumber.remove(at: indexPath.row))")

您使用多个收藏品的具体原因是什么?