Swift Singleton Pattern 与 Cloud Firestore 结合使用



我一直在寻找云火存储作为我的后端基础设施。我一直在使用实时数据库,但觉得开关至关重要。我已经查看了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应用程序委托的方法。

最新更新