Преобразование метки времени Firestore в тип данных Date - PullRequest
0 голосов
/ 24 июня 2018

Несколько дней назад я только что обновил свой модуль Firebase до последней версии, и в моей области отладки я получил сообщение, в котором говорилось, что мне нужно обновить тип данных timestamp до Date (что-то подобное, я действительно забыл).

и мне также нужно изменить настройки БД, как показано ниже

let db = Firestore.firestore()
let settings = db.settings
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings

, после добавления кода выше сообщение об ошибке в моей области отладки в XCode исчезает.

Насколько я помню, мне также пришлось поменять тип данных в моем клиенте с типа данных Timestamp на Date, я не изменил это, потому что исчезло сообщение об ошибке в моей области отладки в Xcode.

В результате я получаю неправильную дату в своем приложении.

Не могли бы вы еще раз поделиться шагом преобразования из метки времени в дату?потому что, насколько я помню, я должен был сделать несколько шагов, чтобы следовать.Я не могу найти его в документации Firebase.

Большое спасибо:)

1 Ответ

0 голосов
/ 24 июня 2018

Это сообщение отладчика

Поведение системных объектов Date, хранящихся в Firestore, изменится, и ваше приложение может сломаться. Чтобы скрыть это предупреждение и убедиться, что ваше приложение не сломалось, вам необходимо добавить следующий код в свое приложение перед вызовом любых других методов Cloud Firestore:

let db = Firestore.firestore()
let settings = db.settings
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings

С этим изменением временные метки, хранящиеся в Cloud Firestore, будут считываться как объекты временной метки Firebase, а не как объекты системной даты. Таким образом, вам также необходимо обновить код, ожидающий дату, а не метку времени. Например:

// old:
let date: Date = documentSnapshot.get("created_at") as! Date
// new:
let timestamp: Timestamp = documentSnapshot.get("created_at") as! Timestamp
let date: Date = timestamp.dateValue()

Пожалуйста, проверяйте все существующие использования Date, когда вы включаете новое поведение. В будущем выпуске поведение будет изменено на новое, поэтому, если вы не выполните эти шаги, ВАШЕ ПРИЛОЖЕНИЕ МОЖЕТ ПЕРЕРЫВ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...