我正在尝试从iOS应用访问Firestore中的数据。 我安装了 Firebase / Firestore 吊舱,然后再次构建了该项目。然后,我在 AppDelegate.swift 中插入了以下代码:
import Firebase
FirebaseApp.configure()
let db = Firestore.firestore()
回到我的 ViewController ,我试图访问db以获取一些数据:
let services = db.collection("services").getDocuments { (snapshot, error) in
if let error = error {
print(error)
}
guard let docs = snapshot?.documents else { return }
for doc in docs {
print(doc.data())
}
}
但是出现以下错误:使用未解析的标识符'db'
如果将以下行移至ViewController,一切都很好:
let db = Firestore.firestore()
知道为什么吗?
答案 0 :(得分:2)
因为类中的任何已声明属性只能从该类对象访问。除非您将其设为静态。
因此,如果您希望能够访问数据库,则有两个选择:
答案 1 :(得分:1)
新建一个名为“ GlobalFunctions.swift”的类
import Firebase
class GlobalFunctions: NSObject {
static let db = Firestore.firestore()
}
可以在需要的地方在整个应用程序中使用此类,如下所示:
let services = GlobalFunctions.db.collection("services").getDocuments { (snapshot, error) in
if let error = error {
print(error)
}
guard let docs = snapshot?.documents else { return }
for doc in docs {
print(doc.data())
}
}