Каков рекомендуемый способ сохранения длительностей в Firestore?
Поскольку речь идет о продолжительности, решением будет сохранить ее как число, в частности как Integer
, который является поддерживаемым типом данных . В вашем примере 4 минуты и 44 секунды будут сохранены как:
284
И это потому, что 4 * 60 + 44 = 284.
Если вы хотите вернуть число часы и минуты, просто измените приведенный выше алгоритм.
Было бы хорошо, если бы оператор приращения Firestore работал с используемым типом данных.
Firestore уже предоставляет такой вариант. Если вы хотите добавить, например, час к существующей продолжительности, вы можете использовать:
FieldValue.increment(60)
Если вы хотите уменьшить на час, просто используйте:
FieldValue.increment(-60)
Я думал об использовании метки времени
Метка времени не является продолжительностью. Временные метки Firestore содержат единицы времени, такие как наносекунды. Таким образом, объект Timestamp содержит год, месяц, день, час, минуты, секунды, миллисекунды и наносекунды. Это никак не решит вашу проблему.