не может вернуть дату из облачной функции firebase? - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь просто вернуть дату из функции firebase:

import * as functions from 'firebase-functions';

const date = functions.https.onCall(() => {
  return {
    date: new Date(),
    iso: new Date().toISOString()
  };
});
export default date;

Но вот результат, который я получаю (используя функции firebase: shell):

RESPONSE RECEIVED FROM FUNCTION: 200, {
  "result": {
    "date": {},
    "iso": "2018-12-08T18:00:20.794Z"
  }
}

Обратите внимание, что объект Date () сериализуется как пустой объект, который кажется неправильным?Я бы ожидал, по крайней мере, .toString () или что-то из экземпляра Date ...

Означает ли это, что я должен явно избегать возврата экземпляров Date?Я могу написать собственный сериализатор, который обертываю вокруг своих функций для глубокого преобразования экземпляров Date в строки через .toISODate () и т. Д., Но похоже, что я что-то упустил!

Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2018

Если у вас есть объект даты d, вы должны либо:

  1. отправить свое время эпохи Unix в миллисекундах с d.getTime() или
  2. Отправьте в JSON сериализованную форму с d.toJSON().

Я предлагаю № 1, поскольку легче взаимодействовать с различными системами.Каждая система понимает даты в эпоху Unix, и это число не требует анализа.

...