如何使用firestore文档获得准确的文档删除时间

问题描述

因此,我的目标是能够创建具有任何日期的事件,并且如果该日期已过期,它将能够删除该文档。我遇到的问题是,当我在当前时间 25 分钟后的任何时间创建带有日期的事件时,由于我的自动删除功能,文档会在我创建时自动删除,但我不明白为什么它删除。我是这样设置功能的...

func deleteExpiredCreatedEvents() {
    setupDate { (dateforexpiry) in
            self.db.collection(Constants.Firebase.schoolCollectionName).whereField("expiresAt",isLessThanOrEqualTo: dateforexpiry!).addSnapshotListener { (querySnapshot,error) in
                if error != nil {
                    print("Error fetching docs/User deleted account.")
                } else {
                    for document in querySnapshot!.documents {
                        let documentident = document.documentID
                        let docalgoliaid = document.get("algoliaObjectID") as! String
                        
                        deleteIndex.deleteObject(withID: ObjectID(rawValue: docalgoliaid)) { (result) in
                            if case .success(let response) = result {
                                print("Record Deleted!: \(response.wrapped)")
                            }
                        }

                        self.db.document("school_users/\(self.user?.uid)/events/\(documentident)").delete { (err) in
                            if err != nil {
                                print("Errr")
                            } else {
                                print("No errs")
                                self.tableView.reloadData()
                            }
                        }
                    }
                }
            }
    }
}

我基本上用这个功能作为自动删除任务,我把它和这个功能结合起来完成工作

func setupDate(completion: @escaping ((String?) -> ())) {
    formatter.dateFormat = "EEEE,MMMM d yyyy,h:mm aZ"
    formatter.locale = .current
    formatter.timeZone = .current
   let dateToString = formatter.string(from: rightNow)
    completion(dateToString)
}

所以我确定这个问题主要源于这个函数,rightNow 刚好等于 Date(),当事件发生时,我按照文本在我的 dateTextField 中的方式对其进行了格式化创建。我尝试使用时区,在格式末尾添加 -0000 以获得正确的时区,将内容注释掉,但它仍然无法按照我想要的方式工作。

我测试了在当前时间之前创建到期日期的事件,它甚至在显示在完美的单元格中之前会自动删除。当我创建一个日期为当前时间 25 分钟或以下的事件,然后检查该时间之后单元格是否存在时,它也消失了,这也是完美的。一旦我创建了一个日期比当前时间晚 25 分钟的事件,该单元格就会自动删除,并且不会显示出来,这让我很困惑。

另外,我刚刚意识到,当时间改变时,我再次查看过期的单元格,它们仍然显示在 tableView 中,所以我无法弄清楚一大堆错误.

如果有人能指出我需要添加或调整的问题或其他内容,那就太好了,谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...