2015-04-27 2 views
3

Мне просто интересно, есть ли средства для хранения Time in Firebase с помощью Swift? Причина, по которой я спрашиваю, заключается в том, что я хочу создать приложение, когда при создании определенного объекта объект начнет таймер, отсчитывающий от 24 часов, когда он будет создан. Когда эти 24 часа истекают, объект удаляется. Я также хочу показать таймер обратного отсчета, чтобы показать, насколько дольше объект ушел до его удаления.Хранить время эффективно в базе данных Firebase?

Я пробовал хранить часы и минуты как Целые в моей базе данных, но это не кажется очень эффективным, так как я должен беспокоиться о AM/PM и, возможно, придется беспокоиться о том, какой это день. Я также думал о сохранении даты как строки, но это кажется трудным в определении того, как постоянно менять строку на целое число и уменьшать время, чтобы показать обратный отсчет таким образом.

Я просмотрел FirebaseServerValue.timestamp(), но я не могу хранить это в Firebase. Есть ли какие-либо советы или идеи о том, как можно реализовать это? Благодарю.

EDIT: Попытка сохранить FirebaseServerValue.timestamp() в Firebase:

self.firebaseRef.childByAutoId().setValue([ 
     "individualId":individualId.text, 
     "timeCreated": FirebaseServerValue.timestamp() 
     ]) 

Однако я получаю сообщение об ошибке сказав, что '_' is not convertible to 'StringLiteralConvertible'. Я попытался увидеть, имеет ли временная метка какие-либо методы, чтобы превратить ее в строку или целое, но не смог найти ничего, что, по моему мнению, было бы полезно с автозаполнением.

+0

«Я смотрел в' FirebaseServerValue. timestamp() ', но я не могу сохранить это в Firebase. Учитывая, что эта функция специально предназначена для хранения временных меток, вы можете показать свой код? –

+0

@FrankvanPuffelen Я показал, как хранить временные метки с Firebase в исходном посте. – user1871869

ответ

9

Вы можете использовать интервал времени и просто сохранить его как номер

var interval = NSDate().timeIntervalSince1970 

И когда вам нужна дата просто получить его, как это

var date = NSDate(timeIntervalSince1970: interval) 
+0

Это хорошо работает, есть ли способ сохранить это как строку? Firebase, кажется, принимает только строки .. – user1871869

+0

Просто сделайте '' \ (interval) "', если вы используете Swift или строку с форматом в Objective-C, например '[NSString stringWithFormat: @"% f ", interval];' –

+0

Я использую Swift, и когда я пытаюсь выполнить метод '' \ (interval) '', похоже, что он не работает. Это пример того, как я пытаюсь сохранить его:. 'self.firebaseRef.childByAutoId() SetValue ([ "individualId": individualId.text, "timeCreated": "\ (интервал)" ]) ' Но я получаю сообщение об ошибке« Ожидаемый »,« seperator » – user1871869

Смежные вопросы