Ваша проблема может быть связана с изменениями, которые были внесены в недавний выпуск Firestore SDK (версия 5.0.3 для JavaScript SDK):
В этом выпуске изменилось поведение объектов Date, хранящихся в Firestore: «timestamps»хранящиеся в Cloud Firestore считываются как объекты временной метки Firebase, а не как объекты системной даты. "
Вам нужно «обновить код, ожидающий дату, вместо того, чтобы ожидать метку времени», следующим образом:
// Old:
const date = snapshot.get('created_at'); // <- 'created_at' is an example of field name
// New:
const timestamp = snapshot.get('created_at');
const date = timestamp.toDate();
Кроме того, вы должны также цеплять свои обещания немного по-другомуКак изменить способ отправки ответа.Вы можете посмотреть следующее видео для получения дополнительной информации о том, как написать функцию HTTP: https://www.youtube.com/watch?v=7IkUgCLr5oA
exports.get_time = functions.https.onRequest((request, response) => {
var fieldValue = require("firebase-admin").firestore.FieldValue;
db.collection('times').doc('servertime').set({servertime: fieldValue.serverTimestamp()})
.then((ref) => {
return db.collection('times').doc('servertime').get();
})
.then((snapshot) => {
response.send(snapshot.data());
// return null; no need to return here since it is an HTTP Function
})
.catch((error) => {
response.status(500).send(error)
});
});