javascript - 如何从 Firebase 获取服务器时间

标签 javascript angularjs date server-side firebase

我在使用 angularjs 和 firebase 时使用

$scope.createdDate = new Date();

它使用客户端上的时间,但我想使用 Firebase 服务器的当前时间,因为客户端时间可能会有所不同。我怎样才能有 Angular 地解决这个问题?

最佳答案

当你打印 firebase.database.ServerValue.TIMESTAMP 时,它会给你这个对象 {.sv: "timestamp"}

要在客户端上获取 firebase 服务器的时间戳,您首先需要将值写入到服务器,然后读取该值。

 firebase.database().ref('currentTime/').update({ time: firebase.database.ServerValue.TIMESTAMP })
    .then(function (data) {
      firebase.database().ref('currentTime/')
        .once('value')
        .then(function (data) {

          var t = data.val()['time'];
          console.log('server time: ', t);

        }, function serverTimeErr(err) {
          console.log('coulnd nt reach to the server time !');
        });
    }, function (err) {
      console.log ('set time error:', err)
    });

我认为必须有一种更简单的方法来直接从客户端读取服务器时间戳。

编辑 1: 刚刚找到一种更好的方法,使用 1 次调用 firebase

firebase.database().ref('/.info/serverTimeOffset')
  .once('value')
  .then(function stv(data) {
    console.log(data.val() + Date.now());
  }, function (err) {
    return err;
  });

关于javascript - 如何从 Firebase 获取服务器时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24202641/

相关文章:

java - 获取当前时间和日期,采用 16 位十六进制(16 个字符)

javascript - 检测到更改后自动刷新iFrame

javascript - Uncaught ReferenceError : Cannot access 'CONFIG' before initialization

javascript - AJAX IRC客户端,怎么样?

php - date() 和夏令时的问题

python - parse_dates 如何与 pd.read_sql_query 一起使用

javascript - css 两次显示图像反对一次?

javascript - Angular js 按钮点击

javascript - Promise 未在 meteor-angular 应用程序中定义

angularjs - 如何在AngularJS的递归指令中传递函数引用?