как получить FireBase время в FireBase - PullRequest
0 голосов
/ 20 февраля 2020

Мне требовалось в моем приложении firebase (сервер) время в миллисекундах. потому что мое местное время будет меняться в зависимости от даты и времени для мобильных устройств,

я буду видеть этот вопрос не очень полезным, Flireter Firestore Timestamp на стороне сервера

var timestamp=FieldValue.serverTimestamp();

print("timestamp"+timestamp.toString());

но они печатают ниже значения

====>Instance of 'FieldValue'

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

вы должны использовать

timestamp() {
    Firestore.instance.collection('timestamp').document('time').setData({
      "timestamp": FieldValue.serverTimestamp(),
    });
  }
1 голос
/ 20 февраля 2020

Перед чтением отметки времени вы должны установить ее на сервере, поскольку вы генерируете ее оттуда. Согласно this

serverTimestamp () Возвращает страж для использования с set () или update (), чтобы включить сгенерированную сервером метку времени в записанные данные.

, поэтому сначала установите его

Firestore.instance.collection('timestamp').document('docId').setData({'time' : FieldValue.serverTimestamp()});

, а затем получите его с помощью запроса basi c firestore. Наконец, проверьте этот ответ на детали почему.

Для более общего способа получения метки времени

    getTimestamp() async{ 
      await Firestore.instance.collection('timestamp').document('docId').setData({'time' : FieldValue.serverTimestamp()});
      DocumentSnapshot doc = await Firestore.instance.collection('timestamp').document('docId').get();
      Timestamp timestamp = doc['time'];
      var timestampInMilliSeconds = timestamp.millisecondsSinceEpoch;
      return timestampInMilliSeconds;
      /* here you can call setState to your own variable before returning and keep in mind this method is async so it will return a Future.  */
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...