保存FIRServerValue.timestamp() - Hasable协议错误

时间:2016-10-27 14:23:58

标签: swift firebase firebase-realtime-database

以下代码成功将数据(“test”:FIRServerValue.timestamp())保存到我的Firebase数据库:

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
        }
    }

但是,我希望将时间戳作为键,将“test”作为值,例如。 FIRServerValue.timestamp(): “测试”

当我将它们切换到这个时:

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

我收到错误:

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

在阅读Hashable协议的其他一些问题后,我很困惑这是否可行?

1 个答案:

答案 0 :(得分:2)

FIRServerValue.timestamp()是一个发送到Firebase服务器的命令,然后创建一个timeStamp值然后存储它。

如果你打印你得到一个空字典,字典是如何工作的,你的键值对字典不能有一个空键,因为你没有收到 FIRServerValue.timestamp()的键你的前端,它在updateValues中仍为null。

所以你不能定义一个空键