[Flutter] flutterfire configure FormatException 해결하기

Malways·2023년 9월 5일

Flutter

목록 보기
3/3
post-thumbnail

Issue

Flutter 프로젝트에 Firebase를 추가하다 보면, flutterfire configure를 입력해야 할 때 정상적으로 동작이 되지 않는 이슈가 있다.

PS C:\Users\user\Desktop\flutter_test\toonflix> flutterfire config
⠙ Fetching available Firebase projects...
Unhandled exception:
FormatException: Unexpected character (at character 1)
#
^

#0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1383:5)       
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1250:9)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:915:22)      
#3      _parseJson (dart:convert-patch/convert_patch.dart:35:10)
#4      JsonDecoder.convert (dart:convert/json.dart:612:36)
#5      runFirebaseCommand (package:flutterfire_cli/src/firebase.dart:95:25)
<asynchronous suspension>
#6      getProjects (package:flutterfire_cli/src/firebase.dart:114:20)
<asynchronous suspension>
#7      ConfigCommand._selectFirebaseProject (package:flutterfire_cli/src/commands/config.dart:300:24)
<asynchronous suspension>
#8      ConfigCommand.run (package:flutterfire_cli/src/commands/config.dart:390:37)
<asynchronous suspension>
#9      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#10     main (file:///C:/Users/user/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutterfire_cli-0.2.7/bin/flutterfire.dart:57:5)
<asynchronous suspension>

에러 발생 부분에 # 이 잡히는 것 말고도, 대괄호 또는 중괄호도 잡히는 것 같다.
48시간의 구글링과 테스트 대장정을 통해, 해당 문제를 어떻게 해결하는지를 깨달았기에 포스팅을 해둔다.

Solving

시작하기 전에 기본적으로 환경 변수 하나만 체크하고 오자.

플러터 환경변수 1개 말고 다른 환경 변수 하나가 추가적으로 필요한데,
dart pub global activate flutterfire_cli 실행 시 밑에 표시되는 위치를 Path에 넣고 오자.
참고로 필자는 C:\Users\user\AppData\Local\Pub\Cache\bin 이었다.

1. Firebase CLI 설정

기본적으로 Firebase CLI는 npm에서 설치 가능한 버전과 .exe 파일이 따로 존재하는데,
일단 .exe만 먼저 설치해서 테스트해보고 안되면 nvm을 사용해서 Node.js v16.13.0 이상으로 설치하자.
그대로 진행했는데 위의 해당 에러가 발생하거나, CLI를 찾지 못한다는 에러가 발생한다면

이런 식으로 프로젝트 폴더에 원본을 넣고, 복사해서 firebase.exe로 하나 더 만들어두자.

2. Firebase init

맨 앞에 사진 보면 알겠지만, firebase login까지만 하라고 써있지 init 이야기는 존재하지 않지만,
init을 하지 않으면 프로젝트에 firebase를 적용할 수 없다!

3. 입력할 콘솔

앞에 두 작업을 했다면 명령어를 입력하자
절대로 VSC에서 하지 말자. 문제 해결하고도 VSC에서는 아직도 작동하지 않는다.

firebase-tool-instant-win.exe를 통해서 명령어를 실행시키자.
바로 firebase init 하고, dart pub global activate flutterfire_cli 친 다음에
flutterfire configure 를 실행시키면 정상적으로 작동할 것이다.

profile
무지무죄불학유죄

0개의 댓글