【发布时间】:2020-12-03 11:24:17
【问题描述】:
我在 Firestore 中有一堆这种格式的对象。当我没有在对象中包含数组但现在它似乎根本没有加载时,它工作得很好。
这是对象:
struct BuildingNew: Identifiable, Hashable, Equatable{
var id : String = UUID().uuidString
var ml : String
var name : String
var address : String
var description : String
var phone : String
var website : String
var imageURL: String
var historicalRelevance : String
var images : [String]
var tags : [String]
}
最后,这里是视图模型:
class BuildingViewModelNew: ObservableObject {
@Published var buildings = [BuildingNew]()
private var db = Firestore.firestore()
func fetchData(){
db.collection("buildings_new").addSnapshotListener{ (querySnapshot, error) in
guard let documents = querySnapshot?.documents else {
print ("No buildings found")
return
}
self.buildings = documents.map { (queryDocumentSnapshot) -> BuildingNew in
let data = queryDocumentSnapshot.data()
let ml = data["ID"] as? String ?? ""
let name = data["Name"] as? String ?? ""
let address = data["Address"] as? String ?? ""
let description = data["Description"] as? String ?? ""
let phone = data["Phone"] as? String ?? ""
let website = data["Website"] as? String ?? ""
let imageURL = data["current_image"] as? String ?? ""
let historicalRelevance = data["historicalRelevance"] as? String ?? ""
let images = data["images"] as? [String] ?? [""]
let tags = data["tags"] as? [String] ?? [""]
return BuildingNew(ml: ml, name: name, address: address, description: description, phone: phone, website: website, imageURL: imageURL, historicalRelevance: historicalRelevance,images: images, tags: tags)
}
}
}
}
它使用 .OnAppear 函数在 SwiftUI 中获取数据,但自从添加了数组后 - 它就没有工作。我尝试使用 Array 而不是 [String] 但没有运气。
【问题讨论】:
标签: ios swift firebase google-cloud-firestore swift5