簡體   English   中英

iOS的Firebase:childByAutoId()每次都會覆蓋同一個孩子

[英]Firebase for iOS: childByAutoId() overrides the same child every time

我現在第二次使用Firebase,但第一次使用iOS的Firebase。(以及與iOS一起使用)所以我正在使用childByAutoId(),它應該類似於Android的push(),對嗎? 我的代碼是:

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

但是,每次將照片保存在Firebase中時,以前保存的照片(目前僅一張)都將被新的照片覆蓋。 ID正在更改,我可以看到第二個Firebase正在創建新的子級“圖像”,並且這兩張照片分別保存在Place的兩個不同“圖像”子級中。 然后它消失了。

因此,我是否遺漏了一些明顯的東西,或者這是一個錯誤或任何其他建議,我們非常歡迎。

更新:
我的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 "
    }
  }
}

因此,第二個“圖像”顯然不能替代第一個。

不知道您是否解決了這個問題。 但是我也面臨着同樣的問題。 我的代碼在UIButton動作中,所有新條目均被刪除,僅保留了最新條目。 在操作結束時將refs設置為nil可以解決我的問題,並且我開始在儀表板中看到多個條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM