플러터와 파이어베이스

haley·2024년 9월 24일
post-thumbnail

나는 파이어베이스를 사용해본적이 있다.

근데 이제... 오래전 일이고, 안드로이드 개발할때 썼고, 웹개발할때 썼을 때는 앞서 만들어져있는 것을 사용했기 때문에 거의 사용해 본적 없다고 해도 무방하다.

하지만, 인간이란.. 굉장히 멍청한존재....
해본 기억 좀 있다고 파이어베이스 연결쯤 만만하다고 생각하고 있었는데 학원 친구들이 파이어베이스 연동하는게 너무 어렵다는 얘기를 계속하니 좀 걱정이 되었다.

그래서 이 글은 날것의 그대로!
오류가 나는것들을 모두 그대로 기억해서 어떻게 트러블 슈팅을 하는지 적어볼 생각이다.
이 글을 쓰는 순간부터 파이어베이스 사이트를 열겠다.
일단 나는 기존에 파이어베이스를 썼던 사람으로써 해야하는 사전 설정없이 그냥 프로젝트 만들기로 'teamAtempo'를 생성했다.
타이틀을 입력하는것 말곤 할게없었다.

여기서 뭘 눌러야하는지 고민도 안됐다. 플러터 모양이 너무 직관적으로 있는거 아냐? (나는 왜 기술문서도 안읽는가)

그래... 혼자 하다가 망치지 말고 기술 문서를 읽자!
공식문서

  1. 터미널을 켠다음 firebase login 을 해당 프로젝트 폴더 위치에서 입력해준다.
    > 근데 나는 'Already logged in as 내이메일' 이라고 떴다. 따로 뭐 해줄 필요가 없나보다.

  2. dart pub global activate flutterfire_cli
    그다음 해당 명령어를 입력해주었다.
    > 설치가 잘 되었다.

  3. 그 다음 flutterfire configure --project=프로젝트이름을 입력한다.
    > 에러가 났다!

에러 해결 방법

⠹ Fetching available Firebase projects...                                                                                                          
FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase --version 
ERROR: The FlutterFire CLI currently requires the official Firebase CLI to also be installed, see https://firebase.google.com/docs/cli#install_the_firebase_cli for how to install it.

여기서 눈여겨 봐야할 에러는

FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase --version

이 두줄이다.
바로 아래에 오류를 해결하기 위한 url이 있다. 들어가보자.

firebase cli가 버전이 안맞는것 같다. 업데이트 방법을 찾자.

curl -sL https://firebase.tools | bash
이걸 입력하면 되나보다.

입력하고 좀 지나서 뭐라고 나왔는데 이건 백퍼 성공했단 얘기는 아님

근데 여기에도 해결방법을 친절하게 알려줘놨음
curl -sL firebase.tools | upgrade=true bash

성공ㅎㅅㅎ

자 다시 명령어를 입력해보자!
flutterfire configure --project=프로젝트이름

으악 아니었다!!! 똑같은 오류가 났다..
다시 오류를 훑어보자.
curl -sL https://firebase.tools | bash 부분 오류를 읽어봤더니 Please upgrade Node.js to version >=18.0.0 || >=20.0.0 노드js를 업데이트 하라는것 같다.
옥게.. 다시한번 도전..
node와 npm 업데이트 하는방법
해당 블로그에서 말한대로 실행해본다.

npm install -g n 
> 성공 
n lts 
> 실패 

> 에러내용 
  installing : node-v20.17.0
       mkdir : /usr/local/n/versions/node/20.17.0
mkdir: /usr/local/n: Permission denied

  Error: sudo required (or change ownership, or define N_PREFIX)
  
> 마지막줄  내용을 검색 
> MacOS 버전 High Sierra 이상에서는 usr/local 폴더에 권한 부여를 하지 않기 때문에
관리자 권한을 위한 슈퍼유저 권한 실행 명령어인 “sudo“를 사용하지 않을 경우,
특정 명령어 실행 시 권한이 없어 나타나는 에러이다.

그래서 suddo n lts를 진행했다. 
> 성공!! 

자 돌아가보자..
어디서 부터 해야하지...
이렇게 오류를 해결하다보면 또 다른 오류를 해결하게 되는데 어디까지 했는지를 잘 기억하지 않으면 길을 잃고 포기하게 된다.
(그래서 블로그에 기록하는거임)
내가 진행해야하는건 이거다.
n lts 다음이다.

sudo n lts 
sudo n latest  # 롱텀 서포트와 최신 버전의 노드를 설치하는 명령어 

sudo n prune # 이전 버전 삭제 

nvm install node # 노드 최신버전 설치 

 curl -sL https://firebase.tools | bash  # fire base cli 설치 
 
-- Checking for existing firebase-tools on PATH...
Your machine has firebase-tools@13.19.0 installed.
If you would like to upgrade your install run: curl -sL firebase.tools | upgrade=true bash

> 잘 된것 같으니 이제 다시 아래명령어를 입력해서 구성파일을 추가한다. 

flutterfire configure --project=프로젝트이름`를 한다. 

또 오류가 났다. 하.. 하지만 이번에는 다른 오류지롱!

FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase projects:list --json 

잘 보면 커맨드에 있는 오류가 다르다! 이건 아까 봤던 블로그 중에 해결 방법이 있었다. firebase login 을 하면 되는거였는데 나는 이미 로그인이 되어있다고 뜬다 ^^ 어쩌라느뇽..
'예전에 로그인되어있던 상태라 동기화가 안되서 그런거 아닐까'는 내 뇌피셜이지만 그럴싸한 이유인것 같아서 재 로그인 시도를 한번 해볼까 한다.
firebase login --reauth 다시 로그인 하는 방법을 시도
그 다음에 flutterfire configure --project=프로젝트이름를 시도했다.
와!!!!!! 됐음!!!!!!!
캬 이맛에 트러블 슈팅한다!!!

오류를 해결하고 생각해보니 처음부터 걍 재로그인 했으면 되는거 아닌가 싶긴한데... 어쨌든 러키비키자나~!

firebase_options.dart파일이 생성되었다.

  1. firebase초기화 및 플러그인을 추가해야한다.
    main.dart 파일안에 runApp 윗단에 아래 코드를 입력해준다.
await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

앞에 await가 붙어있기 때문에 void main()옆에 async를 적어줘야겠지?

firebase_options.dart 파일과 main.dart파일에서 오류가 짱 많이남.
main.dart에 있는 오류는 임포트 문제다. 뭔가 파이어베이스를 사용하기 위한 플러그인(패키지==라이브러리)을 추가해줘야겠지?

  1. 터미널에서 제안한 링크가 있는데 파이어베이스 공식문서가 나왔다.
    이걸 따라하면 될것같다.
    파이어베이스 공식문서

나는 2단계부터 진행하면 될것같다.
flutterfire configure # 앱 구성 워크플로


> 오류 없이 성공!
6. 그다음 3단계로 넘어간다.

flutter pub add firebase_core # core 플러그인 설치

flutterfire configure # firebase 구성이 최신상태인지 확인 

firebase_options.dart , main.dart 파일에서 생겼던 오류가 사라졌다!

설치는 끝났고 이제부터는 연결해서 사용하면 되는것 같다!
4단계는 앞으로 개발하면서 사용하게되는 firebase플러그인을 추가하는 방법인것 같은데 나는 아직 파이어베이스 구성을 다하지 않았으니 여기까지 진행하는걸로 마무리 하겠다.

  1. 플러그인 설치 명령어
    flutter pub add PLUGIN_NAME
  2. 파이어베이스 버젼 확인 및 설정 추가(?)
    flutterfire configure
  3. 플러터 빌드
    flutter run
profile
뭐든 한다.

0개의 댓글