ios - 适用于 iOS 的 Firebase : childByAutoId() overrides the same child every time

标签 ios swift firebase

我现在是第二次使用 Firebase,但这是第一次使用 Firebase for iOS。(以及一般的 iOS) 所以我正在使用 childByAutoId() ,它应该类似于 Android 的 push() ,对吗?我的代码是:

let quoteString = ["base64": base64String]
let refPhotos = refPlace.childByAppendingPath("Images")
let refBase54 = refPhotos.childByAutoId()
refBase54.setValue(quoteString)

但是每次在 Firebase 中保存照片时,之前保存的照片(目前只有一张)都会被新照片覆盖。 ID 正在更改,我可以看到 Firebase 正在创建新的子“Images”,并且这两张照片分别保存在 Place 的两个不同的 Images 子项中。然后它就消失了。

所以我是否遗漏了一些明显的东西,或者这是一个错误,还是非常欢迎任何其他建议。

更新:
我的 json 数据

"Places" : {
    "ChIJMaArcCHP5zsRKU_FpbNldp8" : {
      "Comments" : {
        "-K9xX2KBCiOZMthtbxSy" : "Foo"
     },
     "ID" : "ChIJMaArcCHP5zsRKU_FpbNldp8",
     "Images" : {
        "-K9xX2KUPSLGvFZpI-XL" : {
          "base64" : "very long"
          }

...等等。 稍微探索一下——在写的时候可以看到“图像”和“评论”都以红色和绿色出现了两次(新的被创建,旧的被删除)。这不是 childByAppendingPath() 的目标,对吧?

最佳答案

我只是运行了这个片段几次:

var rootRef = Firebase(url: "https://stackoverflow.firebaseio.com/35258493")

override func viewDidLoad() {
    super.viewDidLoad()

    let quoteString = ["base64": "SAIUH IE WE E EUWG EWG YGEFWU GEWOGEW "]
    let refPhotos = rootRef.childByAppendingPath("Images")
    let refBase54 = refPhotos.childByAutoId()
    refBase54.setValue(quoteString)
}

最后得到了这些数据:

{
  "Images": {
    "-K9y4C3NhndlH9LwR7B4": {
      "base64": "SAIUH IE WE E EUWG EWG YGEFWU GEWOGEW "
    },
    "-K9y4I3otW6hV59C6Z2G": {
      "base64": "SAIUH IE WE E EUWG EWG YGEFWU GEWOGEW "
    }
  }
}

所以第二个“图像”显然没有取代第一个。

关于ios - 适用于 iOS 的 Firebase : childByAutoId() overrides the same child every time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35258493/

相关文章:

ios - swift : EXC_BAD_ACCESS

ios - 如何将 APN 认证上传到 Firebase 以进行 FCM

java - 如何从 firebase 数据库中洗牌值以及如何显示 recyclerView?

firebase - Firebase Spark(免费)计划是否适用于每个项目?

iphone - 使用 xCode 4.2 在 Interface Builder 中删除自动布局(约束)

ios - 如何使用 dataTaskPublisher 链接多个 API 调用?

ios - 如何在 ios swift 中使用 Storyboard平均划分按钮图像?

swift - NSScanner 扫描字符串 : intoString: not working in playground

firebase - 在 npm 上使用 firebase 部署时出错 --prefix $RESOURCE_DIR run lint

ios - 如何在 Swift 中创建连接的 slider ?