Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase正在获取服务器时间戳_Javascript_Firebase - Fatal编程技术网

Javascript 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数据库

年/月/日期/信息 e、 g.2017/08/26/消息

因此,我需要获得firebase服务器设置新消息引用路径的时间。 我使用了
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