updateChildValues 似乎不仅更新值
Posted
技术标签:
【中文标题】updateChildValues 似乎不仅更新值【英文标题】:updateChildValues seem not only updates value 【发布时间】:2018-05-16 16:46:23 【问题描述】:我是新手 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 的想法是真的吗?
【问题讨论】:
【参考方案1】:是的,updateChildValues 就像 HTTP 方法中的 PUT。如果键的值存在,则更新它。否则,如果该值不存在,则创建该值。
正如Frank van Puffelen 所说的
Firebase 会自动为每个值创建键,并自动删除没有值的键。知道了这一点,您确实可以看到 updateChildValue 也可用于创建值,并通过使用空值更新键来删除键。
【讨论】:
Firebase 自动为每个值创建键,并自动删除没有值的键。知道了这一点,您确实可以看到updateChildValue
也可用于创建 值,和 通过使用null
值更新键来删除键。
@FrankvanPuffelen 我编辑了我的答案,使您的评论更加完整
@FrankvanPuffelen 抱歉,我在哪里可以阅读官方文档中的相关信息?我没有找到关于“Firebase自动为每个值创建键,并自动删除没有值的键。”我很想在官方来源中阅读它,请给我一个线索,谢谢以上是关于updateChildValues 似乎不仅更新值的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上使用基于时间的密钥更新 firebase 数据库
iOS 中的 Firebase updateChildValues,还有啥更优化的?