2016-10-07 5 views
0

最新のバージョンとSwift 3.0を使用してJSQMessagesを監視しようとしていますが、次のコードは何か他の質問で報告されていますが、 FIRDataSnapshotに含まれている辞書は、 『どれが』は添字のメンバーを持っていない「タイプコンパイルエラーを返している。JSQMessagesViewController 7.3.4 + Firebase(3.7.1)observeMessagesがFIRDataSnapshotにアクセスできない

enter image description here

は誰もが同じ問題に遭遇し、それを克服しましたか?ありがとう!

+0

私は解決策、わからないことが最善ですが、それが動作を発見した:その場合は、あなたが値で取得 –

答えて

1

私はできるだけ長くFirebaseのデータタイプに固執します。だから、

snapshot.childSnapshot(forPath: "text").value as! String 

private func observeMessages() { 
    let messagesQuery = messageRef.queryLimited(toLast: 25) 

    messagesQuery.observe(.childAdded) { (snapshot: FIRDataSnapshot!) in 
     let id = snapshot.childSnapshot(forPath: "name").value as! String 
     let text = snapshot.childSnapshot(forPath: "text").value as! String 
     self.addMessage(id: id, text: text) 
     self.finishReceivingMessage() 
    } 
} 
+0

おかげで、それは私が探していたものです! –

0

私は、解決策を見つけていません確かにそれは最善の方法です、基本的に私は強制的にキャスティングNSDictionaryへ:

private func observeMessages() { 
     let messagesQuery = messageRef.queryLimited(toLast: 25) 

     messagesQuery.observe(.childAdded) { (snapshot: FIRDataSnapshot!) in 

      let id = (snapshot.value as! NSDictionary)["name"] as! String 
      let text = (snapshot.value as! NSDictionary)["text"] as! String 
      //let photoUrl = (snapshot.value as! NSDictionary)["photoUrl"] as! String 

      self.addMessage(id: id, text: text) 
      self.finishReceivingMessage() 
     } 
    } 
関連する問題