目前,数据库中存在过期日期。我希望应用程序在过期日期过后删除帖子,即使用户当前正在使用该应用程序。目前,代码会检查Feed,收集时间,如果时间小于当前时间,则会从Feed中删除帖子。但是,这并不是在不断地比较时间;相反,它仅在数据库中的值更新或重新启动应用程序时才将当前时间与数据库中的时间进行比较。我怎样才能让应用程序不断将自1970年以来的时间间隔与数据库中的时间进行比较,即使在应用程序运行时也是如此?即使用户正在使用该应用程序,如果当前时间大于到期时间,它将从数据库中删除它?
func deletePosts() {
let userID = Auth.auth().currentUser?.uid
let deletionReference = Database.database().reference().child("feeds").child(userID!)
deletionReference.observe(.childAdded) { (snapshot) in
let feedPostID = snapshot.key
print(feedPostID)
let deletionPostTimeReference = Database.database().reference().child("postStatus").child(feedPostID)
deletionPostTimeReference.observe(.value, with: { (snapshot) in
print("damn")
if let value = snapshot.value as? NSDictionary {
print("shit")
let timeOfDeletion = value["timeOfDeletion"] as? Int ?? 0
print(timeOfDeletion)
if timeOfDeletion == 0 {
print("we aint deleting")
}
else {
print("time TO DELETE")
let date = Date()
let currentTime = UInt64(floor(date.timeIntervalSince1970 * 1000))
if currentTime >= timeOfDeletion {
deletionReference.child(feedPostID).removeValue()
if let index = self.postList.index(where: {$0.postID == feedPostID}) {
self.postList.remove(at: index)
self.orderedPostList = self.postList.sorted(by: { $0.revealDate! > $1.revealDate! })
self.tableView.reloadData()
}
}
}
}
})
}
}