【发布时间】:2020-02-17 17:12:27
【问题描述】:
我正在尝试将数组写入 Firebase 上的文档,如下面的代码所述。但是,当该数组包含 100 个项目(仅名称为字符串,因此数据量没有问题)时,它会将应用程序冻结一分钟,并在控制台中收到消息
无法访问 Cloud Firestore 后端。后端在 10 秒内没有响应。 这通常表明您的设备目前没有健康的互联网连接。客户端将在离线模式下运行,直到能够成功连接到后端。
互联网连接很好。这个问题也发生在只有 20 个项目的较小数组上,但不是很明显。
我做错了什么导致应用需要这么长时间才能写入 Firebase?
func saveDocOnline() {
let db = Firestore.firestore()
db.collection("Collection 1").document("Document 1").setData([
"Array" : loadItems()
]) { (error) in
if let e = error {
print("Error saving: \(e)")
} else {
print("Successfully Saved Online")
}
}
}
func loadItems() -> [String] {
var itemTitle: [String] = []
itemTitle = ["Generic", "Generic Bars", "Generic Restaurants" ... "Halloween", "Jazz", "Xmas", "Acid Jazz"]
return itemTitle
}
【问题讨论】:
-
我使用分配给 itemTitle 的 1,000 个单词的列表将问题中的确切代码复制并粘贴到应用程序中。代码运行不到 1 秒。然后,我将您的代码放入一个紧密循环中并运行了 100 次。它完美地工作。这告诉我问题不在该代码段之外。您可能在某处使用 DispatchGroup 吗?
标签: swift firebase google-cloud-firestore