簡體   English   中英

Swift 3 Firebase - (setValue :)無法在內容中存儲_SwiftValue類型的對象

[英]Swift 3 Firebase - (setValue:) Cannot store object of type _SwiftValue at content

我已經多次看到這個問題,但似乎無法弄清楚如何使用這些答案來解決我的代碼中的問題。 這是我正在使用的當前代碼:

if let postContent = postAlert.textFields?.first?.text {
    let post = Post(content: postContent, addedByUser: "Max Kortge")

    let postRef = self.dbRef.child(postContent.lowercased())

    postRef.setValue(post.toAnyObject()) //error here
}

我認為控制台中的錯誤意味着我在這里評論'錯誤'的行。

toAnyObject的方法如下:

func toAnyObject() -> Any {
    return ["content":content, "addedByUser":addedByUser] as Any
}

完整控制台錯誤如下:

由於未捕獲的異常'InvalidFirebaseData'而終止應用程序,原因:'(setValue :)無法在內容中存儲_SwiftValue類型的對象。 只能存儲NSNumber,NSString,NSDictionary和NSArray類型的對象。

使用版本3.12.0我得到了無法存儲類型_SwiftValue錯誤的對象,即使我確定我發送了NSString而不是swift字符串。 我做錯了是完成塊的格式。 我改變了這個:

ref.child("data").setValue("str")  {
    print("done")
}

對此:

ref.child("data").setValue("str")  { err, ref in
    print("done")
}

必須是一個錯誤,我希望在未來的firebase版本中有更好的錯誤消息。

嘗試改變: -

func toAnyObject() -> Any {
  return ["content":content, "addedByUser":addedByUser] as Any
 }

func toAnyObject() -> [AnyHashable:Any] {
  return ["content":content, "addedByUser":addedByUser] as [AnyHashable:Any]
 }

確保代碼中的'post'是[String:String]而不是[String:String?]

暫無
暫無

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

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