Ios 更新数据时出现Swift 3 xcode 8 firebase数据库错误

Ios 更新数据时出现Swift 3 xcode 8 firebase数据库错误,ios,firebase,firebase-realtime-database,swift3,Ios,Firebase,Firebase Realtime Database,Swift3,大家早上好,我正在使用Firebase并升级到新版本的Xcode。我在向Firebase数据库发送更多数据时遇到问题。 以下是错误: 正在将应用程序2终止为未捕获的异常“InvalidFirebaseData”,原因:“setValue:无法在SenderId处存储类型为_SwiftValue的对象。只能存储NSNumber、NSString、NSDictionary和NSArray类型的对象。' 我知道是什么问题,我也在互联网上搜索过,我上传的数据都是字符串,升级到Xcode后出现了这个错误,

大家早上好,我正在使用Firebase并升级到新版本的Xcode。我在向Firebase数据库发送更多数据时遇到问题。 以下是错误:

正在将应用程序2终止为未捕获的异常“InvalidFirebaseData”,原因:“setValue:无法在SenderId处存储类型为_SwiftValue的对象。只能存储NSNumber、NSString、NSDictionary和NSArray类型的对象。'

我知道是什么问题,我也在互联网上搜索过,我上传的数据都是字符串,升级到Xcode后出现了这个错误,有人有同样的问题吗

应该等几天,我也尝试更新Firebase,但没有更新库。

我也有同样的错误。 我就是这样修复的:

我的代码有一个错误:

    var videoInfoDic: Dictionary<String, Any?>?
我如何修复:

    var videoInfoDic: Dictionary<String, Any>?
拿走了可选部分。归功于:

我一直在使用同一个JSQMessage库,将您的按钮代码更改为此,我已将其修复,请告诉我它的运行情况

var messageRef = FIRDatabase.database().reference().child("messages")


override func didPressSend(_ button: UIButton!, withMessageText text:   String!, senderId: String!, senderDisplayName: String!, date: Date!) {

    let newMessage = messageRef.childByAutoId()

    let messageData: Dictionary<String, Any>? = ["text": text, "senderId": senderId, "senderName": senderDisplayName, "mediaType": "TEXT"]

     newMessage.setValue(messageData)

}

我添加了字典?在我的按钮操作中的第二行代码中,它解决了这个问题

它对JSQMessage也起了作用

var messageRef = FIRDatabase.database().reference().child("messages")

let newMessage = messageRef.childByAutoId()
let messageData: Dictionary<String, Any>? = ["text": text, "senderId": senderId, "senderName": senderDisplayName, "mediaType": "TEXT"]
newMessage.setValue(messageData)

在你遇到错误的地方给出你的代码你使用的是哪个Swift版本?也许您必须为Swift 2.3设置传统值?swift 3,这是我的代码:覆盖func DIDPRESS发送按钮:UIButton!,withMessageText:String!,senderId:字符串!,senderDisplayName:字符串!,日期:日期!{let newMessageRef=messageRef.childroomId.childByAutoId let mes=[text:text,senderId:senderId,senderName:senderDisplayName,MediaType:text]newMessageRef.setValuemes self.finishSendingMessage}我正在使用jsqmessageviewcontrollerI使用字符串解决了这个问题!NSString在我上传到Firebase数据库时,在DidPressSend按钮中,我使用字符串作为解决问题的方法!NSString在我上传到Firebase数据库时,在DidPressSend按钮中,我使用字符串作为解决问题的方法!NSString在我上传到Firebase数据库时,按发送按钮