Я создал страницу входа и регистрации в моем приложении iPhone, связанном с firebase-Auth. У меня также есть контроллер просмотра, где люди могут отправлять текст. Я хочу знать, есть ли способ запустить 24-часовой таймер, когда пользователь впервые отправил его, когда таймер достигнет 0, пользователь может снова отправить его.Firebase и таймер, Изменение разрешений на основе времени
ответ
Что я предполагаю, так это то, что вы используете кнопку для отправки этого текста. Поэтому каждый раз, когда ваш пользователь нажимает на эту кнопку, отправляйте звонок в свою базу данных Firebase и проверяйте последнюю опубликованную метку времени, если эта метка времени старше 24 часов вы позволить пользователю представить текст иначе ...
Сохранение текста Первый раз
FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").setValue(["text" : "This is the text", "timeStamp " : Int(NSDate.timeIntervalSinceReferenceDate*1000)])
Извлечение ваших данных при каждом нажатии кнопки
FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").observeSingleEventOfType(.Value, withBlock : {(snapshot) in
if snapshot.exists(){
if snapDict = snapshot.value as? [String:AnyObject]{
let timeSince = snapDict["timeStamp"] as! Double
// Check the timeSince against NSDate, if it has been more than 24 hours then let him post the text else show him an alert t
}
}else{
//User hasn't submitted even a single text yet
FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").setValue(["text" : "This is the text", "timeStamp " : NSDate.timeIntervalSinceReferenceDate])
}
)}
snapDict будет выглядеть примерно так: -
lastPostedText:{
text : ...,
timeStamp : 1234234556
}
Для нахождения разницы между вашим CurrentDate и метку времени увидеть этот ответ: - https://stackoverflow.com/a/27184261/6297658
и преобразование TIMESTAMP в NSDate, просто : -
var date = NSDate(timeIntervalSinceReferenceDate: timestamp)
Чтобы узнать время, прошедшее между моментом времени и текущей меткой даты, выполните следующие действия: This answer
- 1. Сортировка объекта firebase на основе метки времени
- 2. Изменение Firebase массива Ссылка на основе LocalStorage
- 3. Изменение разрешений на файл
- 4. Изменение разрешений на папки
- 5. Запись на существующий файл и изменение разрешений
- 6. Изменение фонового изображения на основе времени суток
- 7. Изменение разрешений
- 8. Изменение фонового изображения на основе времени (javascript)
- 9. Изменение разрешений на файлы подвалов
- 10. Проанализировать xmldocument на основе разрешений
- 11. Изменение разрешений для ntp
- 12. Определить таймер в Matlab просто на основе времени (не даты)
- 13. PHP Таймер обратного отсчета на основе модифицированного файла времени
- 14. Изменение фона на основе времени и масштаба в окне браузера
- 15. Таймер реального времени на wamp
- 16. Разрешение на основе разрешений в ASP.NET MVC3
- 17. Запрос Firebase на основе ServerValue.TIMESTAMP
- 18. Изменение разрешений Использование Powershell
- 19. Изменение разрешений в папках
- 20. Быстрое изменение разрешений ресурсов
- 21. Изменение разрешений для файла
- 22. Фильтр времени и времени часового пояса Firebase
- 23. Предоставление прав на изменение разрешений в linux
- 24. Изменение разрешений на дочерние папки в C#
- 25. Изменение разрешений файлов, созданных Wordpress на сервере
- 26. Ограничить объект ответа Dropwizard на основе разрешений
- 27. PHP: элементы массива на основе разрешений
- 28. Angular2, показывающий компоненты на основе пользовательских разрешений
- 29. Изменение разрешений панели управления на Liferay
- 30. Выбор строк на основе иерархических разрешений
Во-первых, спасибо за ваш ответ @Dravidian, хотя у меня есть некоторые проблемы с ним, в том числе: Что такое snapDict и как я могу проверить, есть ли у пользователя отправлено 24 часа назад! – Sam