Ios 在经过日期后从Firestore中删除文档
我正在创建一个IOS应用程序,其中有一些折扣代码,我希望它们在特定日期后过期 是否有任何方法可以自动删除已过期的文档 示例:假设我创建了一个折扣代码,该代码应在“2019-12-20 12:00”到期,那么当时间过去时,我如何删除此文档?在Firestore有没有办法做到这一点?或者,我可以将当前日期与到期日期进行比较,如果它较旧或与时间相等,则将其删除?如果是,我怎么做 到目前为止,我已经试过了:Ios 在经过日期后从Firestore中删除文档,ios,swift,google-cloud-firestore,Ios,Swift,Google Cloud Firestore,我正在创建一个IOS应用程序,其中有一些折扣代码,我希望它们在特定日期后过期 是否有任何方法可以自动删除已过期的文档 示例:假设我创建了一个折扣代码,该代码应在“2019-12-20 12:00”到期,那么当时间过去时,我如何删除此文档?在Firestore有没有办法做到这一点?或者,我可以将当前日期与到期日期进行比较,如果它较旧或与时间相等,则将其删除?如果是,我怎么做 到目前为止,我已经试过了: let expiring = data["expiring"]
let expiring = data["expiring"] as? String
let dateNow = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
let currentDate = dateFormatter.string(from: dateNow)
let date = dateFormatter.date(from:expiring!)
print(date, " ", currentDate)
但当我打印出“日期”时。返回“nil”,currentDate返回正确的日期。当我让它们都返回正确的值时,我想添加一个if语句来检查“date”是否早于或等于正确的日期和时间,如果是这样,则删除它
有没有更简单的方法?比如在firestore中添加一些东西来自动检测它
你知道怎么整理吗?您知道当日期较旧/等于过期日期时如何删除数据吗?Firestore没有任何内置的删除过期文档的功能。如果希望删除此类文档,则必须自己构建,或者使用现有的解决方案之一 <>但是在删除过期文档之前,不要简单地使用一个查询来显示应用程序代码中的过期文档,比如这样的
self.db.collection("collection")
.whereField("expiresAt", isGreaterThanOrEqualTo: startTimestamp)
通过上述查询,您的代码将只读取未过期的文档
要删除过期文档,您需要运行反向查询。您可以从应用程序本身运行它,但更常见的是在服务器端环境中运行它,例如在云函数中 你会发现: