【发布时间】:2020-04-12 22:05:13
【问题描述】:
我在从 Firestore 创建临时用户数据数组时遇到了一些问题。基本上,我创建了一个函数,它从 Firestore 集合中检索用户数据,然后遍历该集合中的每个文档,为每个文档创建一个“思想”结构的实例。然后我将每个“Thought”实例附加到一个名为“tempThoughts”的临时数组中,然后该函数返回该数组。问题是函数中的数组似乎没有附加任何内容。当我通过在完成后打印出数组的内容来测试它时,它只打印一个空数组。
数据本身是从 Firestore 集合中读取的,因为它会打印出函数迭代的每个文档,所以我认为这不是问题所在。我还尝试通过打印出来来检查我是否真的在正确地创建“Thought”结构的实例,这似乎是有效的。有谁知道我将结构实例附加到数组的方式有什么问题?也许有更好的方法来做到这一点?感谢您提前提供任何帮助。
这是我目前的功能:
func getUserDocuments() -> [Thought]{
var tempThoughts = [Thought]()
db.collection(cUser!.uid).getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
let tempThought: Thought = Thought(id: document.get("id") as! String, content: document.get("content") as! String, dateCreated: document.get("timestamp") as! String, isFavorite: (document.get("isFavorite") != nil))
tempThoughts.append(tempThought)
}
}
}
print("TEST")
print(tempThoughts)
return tempThoughts
}
【问题讨论】:
标签: arrays swift struct google-cloud-firestore append