以下代码成功将数据(“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协议的其他一些问题后,我很困惑这是否可行?
答案 0 :(得分:2)
FIRServerValue.timestamp()是一个发送到Firebase服务器的命令,然后创建一个timeStamp值然后存储它。
如果你打印你得到一个空字典,字典是如何工作的,你的键值对字典不能有一个空键,因为你没有收到 FIRServerValue.timestamp()的键你的前端,它在updateValues中仍为null。
所以你不能定义一个空键