Это может быть что-то вроде историй в Instagram или других подобных социальных сетях: публикуемые вами истории останутся только на 24 часа, а затем исчезнут сами по себе, даже если приложение не запущено. Я сделал нечто подобное, взгляните на код:
// Update the notification database with the deadline date
let today = Date()
let modifiedDate = Calendar.current.date(byAdding: .day, value: 1, to: today)!
// Format the date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
let formattedDate = dateFormatter.string(from: modifiedDate)
self.DBRef.child("Notifications").child(chosenUser).child(selectedStoryID).updateChildValues(["Due Date" : formattedDate]) { (error, ref) in
if let error = error?.localizedDescription {
print("Failed to set deadline with error \(error)")
} else {
print("Deadline set")
}
}
Этот код делает то, что он принимает текущую дату и время, добавляет к нему 24 часа и сохраняет его в базе данных. Взгляните на следующий фрагмент кода:
let dateformatter = DateFormatter()
dateformatter.dateFormat = "MM-dd-yyyy HH:mm"
let deadline = dateformatter.date(from: notificationTableData.storyDeadline)
_ = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { (timer) in
let seconds = Int(deadline?.timeIntervalSinceNow ?? 0.0)
self.timeLeft.text = String(format: "%02d:%02d:%02d", (seconds / 3600), ((seconds % 3600) / 60), (seconds % 60))
if seconds == 0 {
timer.invalidate()
// Remove this node from the database
}
}
Этот фрагмент кода заключается в том, что он извлекает дату из базы данных и отображает ее в моем приложении. Я хочу, чтобы, когда текущая дата и время были равны дате и времени крайнего срока, я хочу удалить конкретный узел (я отметил его на снимке экрана ниже) из базы данных Firebase, даже если приложение не запущено.