Swift 3 Firebase – (setValue :) Не удается сохранить объект типа _SwiftValue в контенте

Я несколько раз задавал этот вопрос, но не могу понять, как использовать эти ответы для решения проблемы в моем коде. Это текущий код, который я использую:

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 } 

Я предполагаю, что ошибка в консоли означает строку, где я прокомментировал здесь «error here».

Ниже приведен метод toAnyObject:

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

Полная консольная ошибка ниже:

Завершение приложения из-за неперехваченного исключения 'InvalidFirebaseData', reason: '(setValue 🙂 Невозможно сохранить объект типа _SwiftValue в содержимом. Может хранить объекты типа NSNumber, NSString, NSDictionary и NSArray. '

Попробуйте изменить: –

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

к

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

С версией 3.12.0 я получил объект Can not store типа типа _SwiftValue, хотя я убедился, что отправил NSString, а не быструю строку. Я сделал неправильный формат блока завершения. Я изменил это:

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

к этому:

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

Должна быть ошибка, и я ожидаю лучшего сообщения об ошибке в будущем выпуске firebase.

убедитесь, что «пост» в вашем коде [String: String] вместо [String: String]

Interesting Posts
Давайте будем гением компьютера.