2016-10-27 6 views
0

次のコードが正常にデータ( "テスト":FIRServerValue.timestamp())を保存私のFirebaseデータベースへ:保存FIRServerValue.timestamp() - ハッシュ可能プロトコルエラー

let updateData = [ "[agent]:\(self.messageText)": (FIRServerValue.timestamp()) ] as [String : Any] 

    let update = self.dbConnector.child("messages/\(key)") 
    update.updateChildValues(updateData) { (error, dbRef) in 
     if (error == nil) { 
      // ok 
     } else { 
      // failed 
     } 
    } 

しかし、私は、タイムスタンプになりたいですキーと "テスト"の値、例えば、 FIRServerValue.timestamp():私はこの程度にそれらを切り替える "テスト"

let updateData = [(FIRServerValue.timestamp()) : "test"] as [Any : String] 

私はエラーを取得:ハッシュ可能なプロトコルの周りにいくつかの他の質問を読んだ

Type 'Any' does not conform to protocol 'Hashable' 

をIこれが可能かどうか混乱していますか?

答えて

2

FIRServerValue.timestamp()はFirebase Serverに送信されるコマンドで、タイムスタンプ値を作成して保存します。あなたがnullの辞書を取得し印刷する場合

は、辞書の仕組み、あなたはフロントエンドにFIRServerValue.timestamp()の鍵を受け取るいけないので、辞書のあなたのキーと値のペアは、ヌルキーを持つことができないということですupdateValuesにまだnullがあります。

したがって、空のキーを定義することはできません。

+0

ありがとうございます。私は私のアプローチを変更し、以前の方法から保存されたタイムスタンプを取り出して、それをその方法で使用しました。 – RJH

関連する問題