Swift 3 Firebase - (setValue :)无法在内容中存储_SwiftValue类型的对象

Max*_*tge 3 ios firebase swift firebase-realtime-database swift3

我已经多次看到这个问题,但似乎无法弄清楚如何使用这些答案来解决我的代码中的问题.这是我正在使用的当前代码:

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
}
Run Code Online (Sandbox Code Playgroud)

我认为控制台中的错误意味着我在这里评论'错误'的行.

toAnyObject的方法如下:

func toAnyObject() -> Any {
    return ["content":content, "addedByUser":addedByUser] as Any
}
Run Code Online (Sandbox Code Playgroud)

完整控制台错误如下:

由于未捕获的异常'InvalidFirebaseData'而终止应用程序,原因:'(setValue :)无法在内容中存储_SwiftValue类型的对象.只能存储NSNumber,NSString,NSDictionary和NSArray类型的对象.

Sim*_*son 7

使用版本3.12.0我得到了无法存储类型_SwiftValue错误的对象,即使我确定我发送了NSString而不是swift字符串.我做错了是完成块的格式.我改变了这个:

ref.child("data").setValue("str")  {
    print("done")
}
Run Code Online (Sandbox Code Playgroud)

对此:

ref.child("data").setValue("str")  { err, ref in
    print("done")
}
Run Code Online (Sandbox Code Playgroud)

必须是一个错误,我希望在未来的firebase版本中有更好的错误消息.