Вопрос 1"Будет ли angularfire2" обернутся вокруг пожарного депо и решит эту проблему, преобразовав все в JS-Date? "
Нет, это не имеет смысла, так как информация может быть потеряна (то есть, наносекунды).
Вопрос 2 «Нужно ли обновлять все запросы к пожарному хранилищу, чтобы использовать метку времени, а не дату JS?»
Я не уверен насчет этого, я буду расследовать. Я полагаю, что вы можете использовать Дата, но лучше всего использовать метку времени.
Вопрос 3"Нужно ли преобразовывать приведенные значения всех временных меток в Date (), как
проинструктированы во фрагменте? "
Это зависит. Если вы не хотите, например, использовать временную метку в указателе даты, то указатель даты, вероятно, не поддерживает отметку времени и поэтому должен быть преобразован. Однако некоторая информация также может быть потеряна.
Метка времени против даты Javascript (требуется помощь)
Я создал эту небольшую таблицу, чтобы понять выбор перехода от даты к отметке времени
+----------------+------------------------------+---------------------------------+-------------------------------------+
| | javascript Date | firestore "Timestamp" | comment/implication |
+----------------+------------------------------+---------------------------------+-------------------------------------+
| precision | milliseconds | nanosecond | better resolution. two objects |
| | | | created right after each other can |
| | | | have the same millisecond, |
| | | | but not nanosecond. |
+----------------+------------------------------+---------------------------------+-------------------------------------+
| specific point | Can be both | Yes - independent of | ? (help wanted) |
| in time | | any time zone or calendar..." | |
+----------------+------------------------------+---------------------------------+-------------------------------------+
| range | 8,640 * 10^12 milliseconds | Range is from: | This restriction on Timestamp, |
| | to either side of 01 January | 0001-01-01T00:00:00Z | makes it possible to convert |
| | , 1970 UTC | to | to RFC 3339 date strings. |
| | | 9999-12-31T23:59:59.999999999Z. | |
+----------------+------------------------------+---------------------------------+-------------------------------------+
| leap seconds | ignored | leap seconds are "smeared" | ? (help wanted) |
+----------------+------------------------------+---------------------------------+-------------------------------------+
| calendar | Gregorian Calendar? | Proleptic Gregorian Calendar | The Gregorian Calendar |
| | | | only goes back to 1582, |
| | | | Proleptic goes back to 0001. |
+----------------+------------------------------+---------------------------------+-------------------------------------+
Источники
Я использовал следующие источники информации:
- Сообщение об ошибке вы можете увидеть в вопросе
- Файл @ firebase / firestore-types / index.d.ts
- Ссылка , предоставленная там github
- Спецификация языка ECMAScript
- Этот вопрос о переполнении стека .