У меня проблема с классом firebase.firestore.Timestamp.
Я работаю над приложением Angular 6 с firestore. Некоторое время я без проблем использую метки времени, но сейчас я перевожу некоторые из своих клиентских сервисов в облачные функции.
Проблема в следующем:
Когда я выполняю операцию записи непосредственно со стороны клиента, например:
const doc = { startTimestamp: firebase.firestore.Timestamp.fromDate(new Date()) };
firebase.firestore().doc('some_collection/uid).set(doc);
Документ правильно записывается в firestore в виде отметки времени.
Однако, когда я отправляю документ в облачную функцию, а затем выполняю запись из функции, он записывается как карта, а не как временная метка. Точно так же, если я использую объект JS Date () вместо firestore.Timestamp, он правильно записывается на стороне клиента, но записывается как строка из облачной функции.
Это имеет смысл, учитывая, что документы представляют собой просто JSON в request.body, думаю, я просто надеялся, что firestore будет достаточно умен, чтобы неявно обработать преобразование.
На данный момент у меня есть обходной путь, который просто вручную преобразует объекты в firestore.Timestamps снова в облачной функции, но я надеюсь, что есть более эффективное решение, возможно, что-то похороненное в SDK, которое я не смог найти.
Кто-нибудь еще сталкивался и в идеале нашел решение для этого?
При необходимости я могу предоставить больше примеров кода.