Как получить метку времени из базы данных Firebase - PullRequest
0 голосов
/ 09 ноября 2018

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

my firebase database under users node

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Используйте это расширение, чтобы содержать ваши преобразования для DataSnapshot. В вашем случае метку времени в миллисекундах нужно разделить на 1000, чтобы преобразовать ее в секунды.

extension DataSnapshot {
    var doubleValue: Double? { return value as? Double }
    var dateValue: Date? {
        return doubleValue.flatMap {
            Date(timeIntervalSince1970: $0 / 1000)
        }
    }
}

Таким образом, вы можете использовать их так:

ref.observeSingleEvent(of: .value, with: { snapshot in
    if let dateJoined = snapshot.child("dateJoined").dateValue {
        print(dateJoined)
    }
})
0 голосов
/ 09 ноября 2018

Чтобы преобразовать значение из базы данных обратно в NSDate:

NSDate(timeIntervalSince1970: value/1000)

/1000 является обязательным, поскольку NSDate ожидает значение в секундах, пока вы сохранили значениев миллисекундах.

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