【发布时间】:2021-07-17 08:58:35
【问题描述】:
我的项目中有对象“小时”
那是我在 Firestore 中添加小时的功能。
func addHour(_ hour: Hour) {
do {
let _ = try self.db.collection("hours").addDocument(from: hour)
} catch {
fatalError("Unable to uncode hour:")
}
}
单独添加小时时效果很好,但一键添加 24 小时时,UI 需要近 20 秒才能返回交互式
这是我的快照监听器,用于从 firestore 加载数据并保存在存储库中。
init() {
loadData()
}
func loadData() {
let rf = db.collection("hours").order(by:"hourNumber")
rf.addSnapshotListener { (querySnapshot, error) in
if let querySnapshot = querySnapshot {
self.hours = querySnapshot.documents.compactMap { document in
try? document.data(as: Hour.self)
}
}// if let
}
}
这是一键添加 24 小时的按钮操作
for index in 1...24 {
let myHour: Hour = Hour(number: index)
self.hourRepository.addHour(myHour)
}
我尝试了很多方法,比如后台线程... 并延迟异步它确实工作并且 UI 堆叠 20 秒
所以我的问题是如何在点击时将 24 个文档添加到 firestore 并且 UI 不会堆叠 ..?!
【问题讨论】:
-
在服务器端的firebase中执行后台任务可以使用firebase函数
标签: firebase google-cloud-firestore swiftui