Javascript Firebase正在获取服务器时间戳
我正试图这样构造我的firebase数据库 年/月/日期/信息 e、 g.2017/08/26/消息 因此,我需要获得firebase服务器设置新消息引用路径的时间。 我使用了Javascript Firebase正在获取服务器时间戳,javascript,firebase,Javascript,Firebase,我正试图这样构造我的firebase数据库 年/月/日期/信息 e、 g.2017/08/26/消息 因此,我需要获得firebase服务器设置新消息引用路径的时间。 我使用了Firebase.database.ServerValue.TIMESTAMP,但它返回的占位符在插入过程中仅转换为历元时间。因此,我的'createdAt'字段是正确的。但是我需要一种方法来创建我想要的路径结构 let epoch = Firebase.database.ServerValue.TIMESTAMP con
Firebase.database.ServerValue.TIMESTAMP
,但它返回的占位符在插入过程中仅转换为历元时间。因此,我的'createdAt'
字段是正确的。但是我需要一种方法来创建我想要的路径结构
let epoch = Firebase.database.ServerValue.TIMESTAMP
console.log(`epoch : ${epoch}`) // it returns an object
let date = new Date(epoch) // date creation fail here
console.log(`date : ${date}`)
let messagesRef = db.ref(`messages/${date.getFullYear()}/${date.getMonth()}/${date.getDate()}`)
let newMessage = {
createdAt: epoch
}
messagesRef.push(newMessage)
有很多方法,但奇怪的是,我能想到的最简单的方法是推送消息,然后抓取消息以获取刚才推送的时间戳 另一种方法是获得一个新pushRef的密钥
messagesRef.push().key
有很多方法,但我能想到的最简单的方法是推送消息,然后抓取消息以获取刚才推送的时间戳
另一种方法是获得一个新pushRef的密钥
messagesRef.push().key
push键是在客户端上创建的。它们使用客户端的时间,但考虑到相对于服务器的时钟偏差。使用时钟偏移来调整本地时间会更简单。参见@cartant agreedGreat comment@cartant。使用歪斜(我忘了它是有记录的)可能值得它自己的答案。不确定我是否暗示了你的答案是正确的。因此,您建议我将一条“虚拟”消息推送到firebase,并通过messagesRef.push()检索它的时间。按键?按键是在客户端上创建的。它们使用客户端的时间,但考虑到相对于服务器的时钟偏差。使用时钟偏移来调整本地时间会更简单。参见@cartant agreedGreat comment@cartant。使用歪斜(我忘了它是有记录的)可能值得它自己的答案。不确定我是否暗示了你的答案是正确的。因此,您建议我将一条“虚拟”消息推送到firebase,并通过messagesRef.push().key
?