2016-09-14 10 views
2

午前皆さん、Firebaseを使用していて、Xcodeの新しいバージョンにアップグレードしました。Firebaseデータベースにデータを送信する際に問題が発生しました。ここで はエラーです:Swift 3 xcode 8更新データのFirebaseデータベースエラー

Terminating app two to uncaught exception 'InvalidFirebaseData', reason: '(setValue :) Can not store object of type _SwiftValue at SenderId. Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray. '

私は問題と私はまた、インターネット上で検索されているものを理解し、私がアップロードしていたデータは、文字列であるXcodeのにアップグレードした後、私は、このエラーを与え、誰もが同じことをしていません問題?

私はFirebaseを更新しようとしましたが、ライブラリの更新はありません。

+1

あなたのコードを教えてくださいどこでそのエラーに直面しますか – Dravidian

+0

あなたはどちらのSwiftバージョンを使用していますか? Swift 2.3のレガシー値を設定する必要があるかもしれませんか? http://stackoverflow.com/questions/39490507/how-can-i-use-swift-2-3-on-xcode8 –

+0

swift 3、それは私のコードです:override func didPressSend(_ button:UIButton !, withMessageText text:文字列!、senderId:String !, senderDisplayName:String !, date:Date!){ let newMessageRef = messageRef.child(roomId).childByAutoId() let mes = ["text":テキスト、 "senderId":senderId 、 "SENDERNAME":senderDisplayName、 "のMediaType": "テキスト"] newMessageRef.setValue(MES)私は私のように文字列を使用して問題を解決し – Laynay

答えて

0

私は同じエラーがあります。 これは私がそれを固定する方法である:エラーが発生しました

私のコード:

var videoInfoDic: Dictionary<String, Any?>? 

私は固定方法:

var videoInfoDic: Dictionary<String, Any>? 

は、オプションの一部を奪いました。クレジットに: https://stackoverflow.com/a/39486888/5792500

+0

jsqmessageviewcontrollerを使用してい self.finishSendingMessage() } – Laynay

1

私はこれまで、あなたのボタンのコードを変更する,,同じ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) 

} 

どうなるか知っている,,固定しまいました辞書<文字列、Any>?問題を解決するために私のボタンアクション内のコードの2行目に

+0

で文字列を使って問題を解決しました! NSStringをFirebaseデータベースにアップロードしてDidPressSendボタン – Laynay

3

これは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) 
+0

で文字列を使用して問題を解決しました! Firebaseデータベースへのアップロード、DidPressSendボタンのNSString – Laynay

関連する問題