Ios 개발을 위한 firebase Ios에 연동하기
firebase는 안드로이드와 Ios를 별도로 연동하는 작업이 필요하다.
해당 OS를 연동하지 않으면 앱은 실행되지만 firebase에서 데이터가 불러와지지 않는다.
Ios와의 연동은 반드시 맥에서만 가능하다.
방법
1. firebase에서 Ios를 선택한다.
2. 아래와 같은 화면에서 패키지명을 입력한다.
3. 아래의 파일을 다운로드 한다.
4. 프로젝트에서 Ios 폴더를 우클릭하여 'Open in Xcode'를 클릭한다.
5. 3번에서 받은 파일을 열린 Xcode에서 'Runner/Runner/'에 끌어놓기 하여 삽입한다.
6. 최상위 Runner을 클릭하여 'Bunder identifier'를 패키지명으로 바꾸어준다.
7. GoogleService-info.plist 파일의 'REVERSED_CLIENT_ID의 값을 복사한다.
8. 최상위 Runner의 Target 'Runner'에서 최하단의 Url type을 새로 추가한다.
9. 금방 복사한 내용을 'Url Schemes'에 입력한다.
10. 프로젝트로 넘어와 터미널에 다음의 명령어를 입력한다.
pod init
11. 프로젝트 Ios 폴더의 Podfile 파일에 다음을 입력한다.
# add the Firebase pod for Google Analytics
pod 'Firebase/Analytics'
# add pods for any other desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
12. 다음의 명령어를 입력한다.
pod install
13. 프로젝트 최상위 클래스를 stateful로 바꾸고 아래의 코드를 추가한다.
@override
void initState() {
// TODO: implement initState
initializeFlutterFire();
super.initState();
}
//파이어베이스 초기화 함수
void initializeFlutterFire() async {
try {
// Wait for Firebase to initialize and set `_initialized` state to true
await Firebase.initializeApp();
setState(() {
_initialized = true;
// loadFirebase();
});
} catch (e) {
// Set `_error` stat7e to true if Firebase initialization fails
setState(() {
_error = true;
});
}
}
해당 코드는 파이어베이스를 초기화하는 코드로 파이어베이스를 안드로이드와 연동시에도 필요하므로 공용되는 코드이다.
생성자에서 파이어베이스 초기화 함수를 호출하고 파이어베이스와 연결되지 않았다면 error를 생성하는 예외처리가 포함되어 있다.
예외처리를 필요로 하지 않는다면 생성자에 'Firebase.initializeApp()'만 삽입해도 된다.
14. 빌드를 하여 firebase 설정에서 아래 부분이 연동 성공으로 바뀌어야한다.
바뀌지 않는다면 실패한 것이니 차근차근 다시 진행하길 바란다.