Я пишу облачные функции, используя Typescript, но я думаю, что это должно быть та же проблема с Javascript.
Я получил то же предупреждение, что и все, кто сказал:
Поведение для объектов Date, хранящихся в Firestore, изменится
И ваше приложение может сломаться. Чтобы скрыть это предупреждение и убедиться, что ваше приложение делает
чтобы не прерываться, вам нужно добавить следующий код в ваше приложение, прежде чем
вызов любых других методов Cloud Firestore:
const firestore = new Firestore (); настройки const = {/ * ваш
настройки ... * / timestampsInSnapshots: true};
firestore.settings (настройки);
С этим изменением будут читаться метки времени, хранящиеся в Cloud Firestore.
обратно как объекты временной метки Firebase, а не как системные объекты даты.
Поэтому вам также нужно обновить код, ожидающий дату вместо
ожидать метку времени. Например:
// Старый: const date = snapshot.get ('made_at'); // Новое: const
timestamp = snapshot.get ('made_at'); постоянная дата =
timestamp.toDate ();
Пожалуйста, проверяйте все существующие использования даты, когда вы включаете новый
поведение. В будущем выпуске поведение изменится на новый
поведение, поэтому, если вы не выполните эти шаги, ваше приложение может сломаться.
Так что я нашел ответы на stackoverflow, но ни один из них на самом деле не работал.
Я в основном добавил в свой код следующее в верхней части моего index.ts (после импорта):
admin.initializeApp()
export const firestore = admin.firestore()
firestore.settings({timestampsInSnapshots: true})
Затем я развертываю свои функции на базе Firebase Все хорошо!
Проблема появляется при вызове триггера. например, когда создается уведомление:
export const onNotificationCreate = functions.firestore.document('notifications/{notificationsID}').onCreate(async notification => { }
Интерфейс, который я использую для создания объекта уведомления:
export interface Notification {
created: any,
type: NotificationType,
content: {
post?: DocumentReference,
comment?: DocumentReference
}
emitters: DocumentReference[],
owner: DocumentReference
}
и для создания этого объекта я получаю дату из хранилища данных.
export const onPostCommentCreate = functions.firestore.document('blogpost/{blogpostID}/comments/{commentID}').onCreate(async (comment, context) => {
const commentData = comment.data()
const commentDate = commentData['created']
Есть идеи, почему у меня все еще есть предупреждение в журналах облачных функций Firestore?
Спасибо.