Каков рекомендуемый способ сохранения продолжительности в Firestore? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь сохранить продолжительность в Firestore. Например, пользователь работал над упражнением в течение 4 минут и 44 секунд. Какой тип данных рекомендуется использовать для этой информации?

Было бы хорошо, если бы оператор приращения Firestore работал с используемым типом данных. Я думал об использовании Timestamp, но в Firebase SDK метод приращения ожидает число, а Timestamp не является числом.

1 Ответ

1 голос
/ 20 апреля 2020

Каков рекомендуемый способ сохранения длительностей в Firestore?

Поскольку речь идет о продолжительности, решением будет сохранить ее как число, в частности как Integer, который является поддерживаемым типом данных . В вашем примере 4 минуты и 44 секунды будут сохранены как:

284

И это потому, что 4 * 60 + 44 = 284.

Если вы хотите вернуть число часы и минуты, просто измените приведенный выше алгоритм.

Было бы хорошо, если бы оператор приращения Firestore работал с используемым типом данных.

Firestore уже предоставляет такой вариант. Если вы хотите добавить, например, час к существующей продолжительности, вы можете использовать:

FieldValue.increment(60)

Если вы хотите уменьшить на час, просто используйте:

FieldValue.increment(-60)

Я думал об использовании метки времени

Метка времени не является продолжительностью. Временные метки Firestore содержат единицы времени, такие как наносекунды. Таким образом, объект Timestamp содержит год, месяц, день, час, минуты, секунды, миллисекунды и наносекунды. Это никак не решит вашу проблему.

...