Using Firebase observeSingleEventOfType synchronously

前端 未结 1 406
余生分开走
余生分开走 2020-12-20 07:02

I am trying to use a semaphore to force synchronisation of a Firebase data query so that I can check for an existing item already in the database.

This is the code

相关标签:
1条回答
  • 2020-12-20 07:34

    You might be intersted in using a completion handler.

    func findUniqueId(completion:(uniqueId:String)->()) {
        self.firDB.child("sessions").observeSingleEventOfType(.Value, withBlock: { snapshot in
            var sID = self.genCode()
            while snapshot.hasChild(sID) {
                sID = self.genCode()
            }
            completion(uniqueId:sID)
        })
    }
    

    Then you will achieve what you are expecting with

    findUniqueId(){ (uniqueId:String) in
        // this will only be called when findUniqueId trigger completion(sID)...
        print(uniqueId)
        // proceed with you logic...
    }
    
    0 讨论(0)
提交回复
热议问题