当我启动应用程序时,它确实加载了数据,但是在构建模型时,它崩溃并显示以下错误:
以下代码来自我的GetIphonesData.swift类:
import Foundation
import Firebase
import Combine
class GetIphonesData : ObservableObject {
@Published var data = [Iphone]()
init() {
let db = Firestore.firestore()
db.collection("iphones").addSnapshotListener { (snap, err) in
DispatchQueue.main.async {
if let err = err {
print("Error getting documents: \(err)")
} else {
for i in snap!.documents {
let iphone = Iphone(id: i.documentID,
name: i.get("name") as! String,
models: i.get("model") as! String,
yearReleased: i.get("yearReleased") as! String,
storageVariants: i.get("storageVariants") as! String,
colors: i.get("colors") as! String,
batteryCapacity: i.get("batteryCapacity") as! String,
cameraResolution: i.get("cameraResolution") as! String,
screenSize: i.get("screenSize") as! String,
screenResolution: i.get("screenResolution") as! String,
sensors: i.get("sensors") as! String,
memory: i.get("memory") as! String)
self.data.append(iphone)
}
}
}
}
}
}
当我打印数据时,它会打印。当我在数据库中有1个项目时,它可以工作,但是一旦我将更多项目添加到数据库中,它就会崩溃。有没有解决的办法,还是有原因的呢?
最佳答案
以下代码的返回值为nil,因此无法将其转换为字符串。
models: i.get("model") as! String,
将以上更改为:
models: i.get("model") != nil ?? i.get("model") as! String : "",
(要么)
models: i.get("model") as? String ?? "",
希望能有所帮助。
关于ios - 从Firebase Firestore获取数据时,我的SwiftUI应用程序崩溃并出现错误。这可能是什么原因造成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60664231/