updateChildValues似乎不仅更新了值

时间:2018-05-16 16:46:23

标签: ios swift firebase firebase-realtime-database

我是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函数的想法是否正确?

1 个答案:

答案 0 :(得分:4)

是的,updateChildValues就像HTTP方法中的PUT。如果密钥的值存在,则会更新。否则,如果该值不存在,则创建该值。

作为Frank van Puffelen,说

Firebase会自动为每个值创建键,并自动删除没有值的键。知道了这一点,您确实可以看到updateChildValue也可用于创建值,并通过使用null值更新它们来删除键。