我是Firebase框架的新手,所以在我试图完成的教程中,作者只通过调用updateChildValues func来创建新值。
@objc func handleRegister () {
guard let email = emailTextField.text, let password = passwordTextField.text else {
print("Form is not valid")
return
}
Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
if error != nil {
print(error)
return
}
//successfully authenticated user
let ref = Database.database().reference(fromURL: "https://my-awesome-project-18f30.firebaseio.com")
ref.updateChildValues([ "someValue" : 123123])
}
所以似乎updateChildValues func不仅更新旧值,而且(另外)如果以前不存在则创建新值。我试图搜索网络上的任何提及,但只提供信息重新更新旧值,并且没有关于创建新的信息,如果以前不存在旧信息。我对updateChildValues函数的想法是否正确?
答案 0 :(得分:4)
是的,updateChildValues就像HTTP方法中的PUT。如果密钥的值存在,则会更新。否则,如果该值不存在,则创建该值。
Firebase会自动为每个值创建键,并自动删除没有值的键。知道了这一点,您确实可以看到updateChildValue也可用于创建值,并通过使用null值更新它们来删除键。