我一直无法保存从Firebase引入的对象。我想获取'cardAmount'的值,添加并保存。但它不断给我带来麻烦,因为它不会将数字转换为字符串。我想我可能会在修改数据结构时出错,但我一直在坚持这一点 - 任何人都可以给我一些关于如何根据需要编辑Firebase中的单个子快照的指导?使用Swift 3更新Firebase中的现有对象
let sevenDayOption = UIAlertAction(title: "Seven Day: $31", style: .default, handler: {
(alert: UIAlertAction!) -> Void in
let query = ref.queryOrdered(byChild: (FIRAuth.auth()!.currentUser?.uid)!)
query.observeSingleEvent(of: .value, with: { (snapshot) in
let cardAmount = snapshot.childSnapshot(forPath: "cardAmount").value as! Float
let newAmount = cardAmount + 31
let newAmountString = String(format:"%.2f", newAmount)
snapshot.setValue(newAmountString, forKeyPath: snapshot.childSnapshot(forPath: "cardAmount").value as! String)
print(snapshot.childSnapshot(forPath: "cardAmount").value as! Float) /*<---- Prints Optional(30.5)*/
})
})
我敢肯定它可能是简单的东西,但它也是目前没有的东西。 Firebase和Swift相对较新,因此它有时会与之摔跤。
谢谢!
有** runTransactionBlock **。或者你可以使用** updateChildValues **方法 – Wolverine
updateChildValues完美工作!提交答案。非常感谢! –