DatabaseReference.observe не вызывается в swift4 - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь получить данные из firebase. Я вызываю функцию, которая имеет databaseReference, но не вызывает. В основном эта функция также вызывается из databaseRefernce только другой функции.

Вот мой код:

func prepareCoursesFromCourseNodewithAllCoursesList(allCourseList: [Any]){
        var courseDetailsNode = String()
            var courseCount = allCourseList.count
            weak var weakSelf = self
            var courseId = String()
            var localCoursesAndCardDictionary = [AnyHashable: Any]()
            for singleCourse in allCourseList as! [[String:Any]] {
                if singleCourse["elementId"] != nil {
                    courseId = "\(String(describing: singleCourse["elementId"]!))"
                }else{
                    if singleCourse["currentCourseId"] != nil {
                        courseId = "\(String(describing: singleCourse["currentCourseId"]!))"
                    }
                }
                if  singleCourse["parentNodeName"] != nil {
                    if singleCourse["parentNodeName"] as! String == "course" {
                        //this is course
                        courseDetailsNode = IMERCOURSE_URL
                    }
                    else {
                        //this is course Collection
                        courseDetailsNode = IMERCOURSECOLLECTION_URL
                    }
                }
                var reference = DatabaseReference()
                let courseURL = "\(FIREBASE_URL)\(courseDetailsNode.replacingOccurrences(of: "{Id}", with: courseId))"
                reference = Database.database().reference(fromURL: courseURL)
                self.addIntoListFirebaseRef(firebaseRef: ref)
                reference.observe(DataEventType.value, with: { (snapShot:DataSnapshot) in
                    courseCount -= 1
                    if snapShot.value != nil  {
                        let singleCourseDictionary = snapShot.value as? [String: Any]
                        localCoursesAndCardDictionary[courseId] = singleCourseDictionary

                            self.settingUserDetailsViewData()
                            (Constants.sharedTools() as AnyObject).hideProgressIndicator()
                        }
                    }
                }, withCancel: { (error:Error) in

                })

            }
        }
    }

это prepareCoursesFromCourseNodewithAllCoursesList(allCourseList: [Any]) вызывается с другого databaseRefernce.ObserveEevnt значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...