Ios 在经过日期后从Firestore中删除文档

Ios 在经过日期后从Firestore中删除文档,ios,swift,google-cloud-firestore,Ios,Swift,Google Cloud Firestore,我正在创建一个IOS应用程序,其中有一些折扣代码,我希望它们在特定日期后过期 是否有任何方法可以自动删除已过期的文档 示例:假设我创建了一个折扣代码,该代码应在“2019-12-20 12:00”到期,那么当时间过去时,我如何删除此文档?在Firestore有没有办法做到这一点?或者,我可以将当前日期与到期日期进行比较,如果它较旧或与时间相等,则将其删除?如果是,我怎么做 到目前为止,我已经试过了: let expiring = data["expiring"]

我正在创建一个IOS应用程序,其中有一些折扣代码,我希望它们在特定日期后过期

是否有任何方法可以自动删除已过期的文档

示例:假设我创建了一个折扣代码,该代码应在“2019-12-20 12:00”到期,那么当时间过去时,我如何删除此文档?在Firestore有没有办法做到这一点?或者,我可以将当前日期与到期日期进行比较,如果它较旧或与时间相等,则将其删除?如果是,我怎么做

到目前为止,我已经试过了:

                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)
通过上述查询,您的代码将只读取未过期的文档


要删除过期文档,您需要运行反向查询。您可以从应用程序本身运行它,但更常见的是在服务器端环境中运行它,例如在云函数中

你会发现:

  • 运行查询以确定所有过期文档
  • 循环浏览那些文件
  • 使用中显示的代码逐个删除它们
  • 另见:


    我稍后会看一看,所以请耐心等待,我会回复的