У меня проблема с созданием одной и той же отметки времени в сообщениях, которые пользователи доставляют друг другу.
Это функция отправки сообщения:
void onSendMessage(String content, int type) {
if (content.trim() != '') {
textEditingController.clear();
var documentReference = Firestore.instance
.collection('messages')
.document(groupChatId)
.collection(groupChatId)
.document(DateTime.now().millisecondsSinceEpoch.toString());
Firestore.instance.runTransaction((transaction) async {
await transaction.set(
documentReference,
{
'idFrom': id,
'idTo': peerId,
'timestamp': DateTime.now().millisecondsSinceEpoch.toString(),
'content': content,
'type': type
},
);
});
cacheSet(groupChatId, content, peerNickname, peerAvatar);
listScrollController.animateTo(0.0,
duration: Duration(milliseconds: 300), curve: Curves.easeOut);
} else {
Fluttertoast.showToast(msg: 'Nothing to send');
}
}
Однако это DateTime.now().millisecondsSinceEpoch.toString()
создает отметка времени в зависимости от устройства пользователя. Это означает, что если пользователь А отправляет сообщение («привет») пользователю В в 10:00, но если пользователь В отвечает («мир») и время его устройства составляет 9:50, оно будет показано перед сообщением пользователя А, которое является ложным.
Примерно так:
09:50 userB - "world"
10:00 userA - "hello"
Существует ли общий формат времени независимо от времени устройства? Можно ли установить без использования внешнего API?