swift - 覆盖变量中的值
问题描述
我是 Swift 的新手,遇到了一个棘手的问题。我需要获取 firestore 集合中所有文档的列表。为此,我使用此功能:
@Published var chatList: String!
func getDataFromDatabaseListenChat() {
let db = Firestore.firestore()
db.collection("chatRoom").getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
self.chatList = document.documentID
print("\(document.documentID) => \(document.data())")
}
}
}
}
如果集合中有多个文档,则结果是下一个文档会覆盖变量中的前一个文档,并且在输出中我会得到列表中的一个元素。告诉我如何将所有这些文档添加到数组中,以便它们可以在 swiftui 列表中使用
解决方案
你需要
var chatList = [String]()
然后
self.chatList = querySnapshot!.documents.map{$0.documentID}
推荐阅读
- python - 先前初始化的变量声称“未定义”
- flutter - 如何在不设置路由的情况下导航到新屏幕
- ios - 如何在 Swift 中显示这个 html 结构的 json 响应
- javascript - 将匹配重音字符并将 - 替换为 ' ' 的正则表达式
- python - 带有OOP的python中的KMeans实现?
- php - 当购物车包含延期交货产品时,在 WooCommerce 购物车和结帐页面上显示消息
- amazon-web-services - 显示来自 AWS CloudFront 的 HTTP 400 的错误页面
- react-native - React Native 中身份验证的最佳实践
- ubuntu - nginx怎么加到UFW,nginx没有出现在UFW lst中?
- python - 如何获得干净的屏幕截图?