我一直在寻找云火存储作为我的后端基础设施。我一直在使用实时数据库,但觉得开关至关重要。我已经查看了Firebase文档,并且正在考虑使用单例模式来管理数据事务,但是我不确定其后果,因为我在网上可以找到的内容很少。是否有任何关于云火存储的最佳实践设计模式的信息。
这是一个很晚的答案,但这就是我使用带有单例模式的 Firestore 的方式......希望它能帮助别人...
struct RemoteConfigManager {
static var sharedDB = RemoteConfigManager()
let db = Firestore.firestore() //FIRFirestore
var listener : ListenerRegistration?
private init(){}
mutating func getData(){
listener = db.collection("myCollection").addSnapshotListener { (snapshot, err) in
if let err = err {
print("Error getting documents: (err)")
} else {
for document in snapshot!.documents {
let myValue = document.get("myKey") as! Bool
//other stuff
}
}
}
}
func detachListener(){
listener?.remove()
}
}
以下代码演示如何使用此结构...
//instance for FireStore
var db : RemoteConfigManager?
//use this method after configring the GoogleService.plist file
func firebaseRemoteConfig() {
db = RemoteConfigManager.sharedDB
db?.getData()
}
分离侦听器时调用以下行
db?.detachListener()
我正在分离applicationWillTerminate
应用程序委托的方法。