*** Terminating app due to uncaught exception 'InvalidFirebaseData', reason: '(setValue:) Cannot store object of type DemoApp.SendMessageInput at . Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray.
エラー「InvalidFirebaseData」これは私が送信しようとしている方法です
をFirebaseにデータを送信中。 通常の辞書を使用してデータを渡すと上記のエラーは発生しませんが、Modelを介して1回以上実行したい場合は、将来変更が発生した場合にdic osではなく入力用にモデルを呼び出すことができます。 1つのファイルのみ。
let messageItem = SendMessageInput(content: text, displayName: currrentUser.name, fileLength: 0, fileUrl: "", fromID: currrentUser.userId, isRead: false, messageStatus: 0, messageType: MessageType.text.rawValue, timestamp: Timestamp, toID: self.toUserID)
itemRef.setValue(messageItem)
SendMessageInput.swift
class SendMessageInput: Reflect{
var content: String = ""
var displayName: String = ""
var fileLength: Int = 0
var fileUrl: String = ""
var fromID: String = ""
var isRead: Bool = false
var messageStatus: Int = 0
var messageType: String = ""
var timestamp: Int = 0
var toID: String = ""
var values:[String: AnyObject]{
let arrayValue: [Any] = [content, displayName, fileLength, fileUrl, fromID, isRead, messageStatus, messageType, timestamp, toID]
var dic: [String: AnyObject] = [:]
for index in 0..<self.getProperties().count{
dic[self.getProperties()[index]] = arrayValue[index] as AnyObject?
}
return dic
}
init(content: String, displayName: String, fileLength: Int, fileUrl: String, fromID: String, isRead: Bool, messageStatus: Int, messageType: String, timestamp: Int, toID: String) {
self.displayName = displayName
self.fileLength = fileLength
self.fileUrl = fileUrl
self.fromID = fromID
self.isRead = isRead
self.messageStatus = messageStatus
self.messageType = messageType
self.timestamp = timestamp
self.toID = toID
}
}
Reflect.swift
class Reflect: NSObject {
func getProperties()->[String] {
let mirror = Mirror(reflecting: self)
var properties = [String]()
for childern in mirror.children {
if childern.label == "super"{continue}
properties.append(childern.label!)
}
return properties
}
func getClassName() -> String {
let mirror = Mirror(reflecting: self)
return String(describing: mirror.subjectType)
}
}
ありがとう、私は完全に忘れました。 – Nitesh