Firebase에서 observeSingleEvent 작업이 끝난 후에 작업을 트리거하는 방법을 알아 내려고합니다.Firebase에서 데이터를 다운로드 한 후에 만 작업을 수행하는 방법
뒤에 이유 나는 다음과 같은 작업을 할 필요가있다 :
- 나는 이러한 데이터가 완전히 다운로드 될 때 데이터베이스
- 에서 일부 데이터를 얻을 필요가 사용자로부터 하나 개의 입력에 따르면, I
: 그들에게 조금 처리 및 기타 데이터를 검색하는 데 사용할 필요가이 코드를 사용하고 사용자가 현재let listOfTags = [String]() var outputArray = [String]() if listOfTags.count != 0 { for tag in listOfTags { ref.child("tags").child(tag).observeSingleEvent(of: .value, with: { (snapshot) in if let temp = snapshot.children.allObjects as? [FIRDataSnapshot] { for elem in temp { outputArray.append(elem.key) } } // ... }) { (error) in print(error.localizedDescription) } } // HERE I WANT TO DO AN ACTION "ONLY" AFTER THE FOR LOOP IS // COMPLETED AND THE "outputArray" IS FILLED WITH ALL VALUES doSomethingHere() }
에 표시하는
그러나 doSomethingHere() 함수는 outputArray가 여전히 비어있을 때 즉시 실행된다는 것을 알았습니다! 그래서 아무것도하지 않습니다.
내 질문에, 어떻게이 함수는 다운로드 프로세스가 완료된 후 실행되도록 프로그램을 구성 할 수 있습니까? 어쩌면 observeSingleEvent가 올바른 Firebase 메소드를 사용하지 않을 수도 있습니다. 이 특정 경우에는 변경 사항을 관찰하고 싶지 않습니다. (이 목록은 자주 변경되지 않기 때문에) 데이터를 다운로드하고 나중에이 데이터로 다른 작업을해야합니다.