Firebase 데이터 수신이 이상합니다

현재 다인원 일정 공유 어플을 만들고 있습니다

그래서 firebase에 그룹, 스케줄, 사용자의 collection을 두고 있고

원래 개발 의도는

  1. firebase ‘User’ Collection에서 나의 document를 찾고, 그 document 안에서 내가 속해있는 그룹 필드를 불러옵니다

2 - a. 호출된 그룹필드를 보고 해당 그룹에 속한 다른사람들의 일정을 불러옵니다

2 - b 호출된 그룹필드를 보고 해당 그룹의 공통 일정을 불러옵니다

  1. 불러온 일정/데이터 들을 출력

인데 현재 view에서 호출 버튼을 누르면 (현재 테스트용 버튼) 1 , 2-a, 2-b, 3의 함수와 코드를 순서대로 실행하는데

firebase의 접근 속도인지 스레드 문제인지 한번에 해당 과정이 실행이 되지를 않습니다.

버튼을 3번 이상 눌러야 그제서야 firebase 의 데이터 가져오기가 완료되는데 호출 함수를 여러번 실행해도 똑같은 상황입니다.

코드는 다음처럼

버튼을 누르고 데이터를 부르는함수를 sync를 사용해서 해봐도 여전히 안됩니다.

그래서 제가 궁금한 점은 이런 상황이 firebase의 데이터 읽기가 완료되기전에 함수가 종료되서 그런것인지

아니면 스레드 적인 문제인지 궁금합니다

Firestore의 함수 getDocument가 비동기 방식으로 동작해서 그런거로 보입니다.

print(self.myGroup)을 getDocument의 함수 파라미터(콜백)에 작성해야 하고, 테이블 reload하는 코드도 마찬가지로 getDocument의 함수 파라미터에 작성해야 합니다.

비동기로 동작하는 getDocument가 완료되기 전에 self.myGroup, self.otherSchedule, self.gs를 출력해도 값이 제대로 출력되지 않을 겁니다.