Каков наилучший способ получить метку времени сервера, используя Firebase Cloud Firestore, Ionic Framework, Angular? - PullRequest
0 голосов
/ 15 января 2019

Я работаю в проекте, который действительно основан на часовом времени. Он имеет функциональность для одинаковой работы в настольном и мобильном приложении ( Android / iOS ) с использованием Ionic Framework .

Если кто-то из пользователей изменит мобильное или системное время, наше полное приложение изменит результаты.

Так что где-то я нашел какой-то ответ, который показывает, что получить время сервера от языка программирования веб-сервера.

Но я не использую язык веб-фреймворка.

    triggerNextTicket(){
     Observable.interval(1000).map((x) => {
    let date = +new Date().getTime() ;
    if( (this.nextTicket.ticket_live_at.seconds * 1000) < date){
      this.ngOnInit();
    }
    if((this.ticketData.ticket_live_at.seconds * 1000) < date){
      this.ngOnInit();
    }

На самом деле, основная проблема в этом коде заключается в том, что если системное время Mobile было изменено пользователем вручную, то наше приложение показывает прошлые данные .

let date = +new Date().getTime() 

в любом случае моя переменная date будет новой, если пользователь изменит свое системное время или в любом случае.

Спасибо

1 Ответ

0 голосов
/ 15 января 2019

Вот простой способ указать Firestore записать метку времени на стороне сервера в документ:

var ref = db.collection("54201787").doc("time");
ref.set({ timestamp: firebase.firestore.FieldValue.serverTimestamp() });

А вот как вы читаете это значение обратно в ваш клиент:

ref.onSnapshot(function(snapshot) {
  var timestamp = snapshot.data().timestamp;
  console.log(timestamp.toString());
})

В этом последнем фрагменте переменная timestamp представляет собой Date объект , поэтому вы также можете получить доступ ко всем другим его методам и свойствам.

Рабочий образец этого кода см .: https://jsbin.com/burimih/edit?html,js,console

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...