gpt4 book ai didi

ios - 使用 UpdateChildValue 从 Firebase 编辑

转载 作者:可可西里 更新时间:2023-11-01 02:05:03 27 4
gpt4 key购买 nike

我想在文本字段内编辑后更新子值。

目前我有这个 Action :

@IBAction func updateAction(_ sender: Any) {

guard let itemNameText = itemName.text, let itemDateText = itemDate.text else { return }

guard itemNameText.characters.count > 0, itemDateText.characters.count > 0 else {

print("Complete all fields")
return
}
let uid = FIRAuth.auth()?.currentUser?.uid
let key = item.ref!.key
let itemList = Item(itemName: itemNameText, itemDate: itemDateText, uid: uid!)
let editItemRef = databaseRef.child("/usersList/\(key)")
editItemRef.updateChildValues(itemList.toAnyObject())
print("edited")

}

我正在关注 this tutorial但他似乎使用用户名,因为我只有电子邮件或 uid (userID) 作为身份验证,所以我想我会使用 uid。

这是我的类中的 toAnyObject 函数:

func toAnyObject() -> [String: AnyObject] {
return ["itemName": itemName as AnyObject, "itemDate": itemDate as AnyObject, "userID": userID as AnyObject]
}

当我运行断点时,它确实显示了项目的编辑值,但是更新似乎没有执行。

最佳答案

为了更加安全,请尝试从您的路径中删除前导斜线:

databaseRef.child("usersList/\(key)")

...并尝试打印 Firebase 返回的 Error,如果有的话:

editItemRef.updateChildValues(itemList.toAnyObject()) { 
(error, _) in
if let error = error {
print("ERROR: \(error)")
} else {
print("SUCCESS")
}

编辑。我们发现他使用了错误的数据库路径。正确的是:

databaseRef.child("users").child(uid!).child("usersList/‌​\(key)")

关于ios - 使用 UpdateChildValue 从 Firebase 编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com