ios - updateChildValues 似乎不仅更新值

标签 ios swift firebase firebase-realtime-database

我是 Firebase 框架的新手,所以在我试图完成的教程中,作者仅通过调用 updateChildValues 函数来创建新值。

 @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 函数不仅更新旧值,而且(另外)创建新值(如果它之前不存在)。我试图在网络上搜索任何提及的内容,但只找到重新分级更新旧值的信息,而没有关于创建新值的信息(如果旧值以前不存在的话)。我对 updateChildValues func 的想法是真的吗?

最佳答案

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

作为Frank van Puffelen , 说

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

关于ios - updateChildValues 似乎不仅更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50376139/

相关文章:

ios - 确定 SpriteNode 何时离开屏幕?

swift - 在 Kitura 中运行单元测试时出错

swift - 如何在 Swift 中使用 rangeOfString?

ios - 如何使用 iTunes Affiliates Search API 查找特定艺术家的歌曲名称

ios - 如何访问应用程序目录外的文件

html - 为什么 iOS Safari 用户代理样式表似乎覆盖了正文上的边距样式?

java - 通过引用子索引从 Firebase 检索数据

android - 是否可以在 Firebase 中发送同步请求?

node.js - 为什么我的时间戳字段在将数据嵌入到 map 列表中后变成时间 map ?

ios - 如何使用SDWebImage