我正在使用Firebase开展网络项目。 我打电话给:
firebase.database.ServerValue.TIMESTAMP
然后它返回:
{.sv: "timestamp"}
如何使用javascript获取Firebase服务器的时间?
答案 0 :(得分:6)
Firebase documentation中的这个代码段显示了如何设置时间戳:
var userLastOnlineRef = firebase.database().ref("users/joe/lastOnline");
userLastOnlineRef.onDisconnect().set(firebase.database.ServerValue.TIMESTAMP);
要在代码中使用值,您需要侦听值:
userLastOnlineRef.on('value', function(snapshot) {
console.log(snapshot.val());
});
您将看到值事件触发两次(在设置值的设备上):一次用于时间戳的初始客户端估计,一次用于服务器的实际值。
答案 1 :(得分:2)
预计您会在写入Firebase数据库的数据中使用firebase.database.ServerValue.TIMESTAMP
。它是服务器上实际时间的占位符,在服务器接收和写入数据时将被替换。
当您从数据库中读取数据或者您拥有的任何侦听器可能已经配置了fire(child_added
,child_changed
或value
个事件时,您将看到实际的时间戳值等)。
文档here中解释了这一点:
{TIMESTAMP: non-null Object}
一个占位符值,用于自动填充由Firebase服务器确定的当前时间戳(自Unix纪元以来的时间,以毫秒为单位)。
答案 2 :(得分:0)
只需添加更多内容即可@cartant回答:
admin.database.ServerValue.TIMESTAMP
返回一个非null的对象,并且是一个占位符值,用于自动填充当前时间戳。 它不包含实际时间戳。数据库将在执行命令时替换该占位符。
在database.ref
内使用它时,它可以按预期工作,但在它外面只是一个无用的对象。
有关更多信息,请参见此SO Answer。
答案 3 :(得分:0)
这就是我要做的:
firebase.firestore.FieldValue.serverTimestamp()
来源:
https://firebase.google.com/docs/reference/js/firebase.firestore.FieldValue