본문 바로가기

Flutter

[Flutter][해결][FlutterFire초기화]Firebase has not been correctly initialized.

728x90

 

 

 

 

 

코딩셰프님의 유튜브 강좌를 따라 Firebase와 연동하여 앱을 진행하려다 만난 에러

 

 

 

댓글을 통해 본 해결 방법은 아래와 같다.

DefaultFirebaseOptions 객체를 사용하여 Firebase를 초기화해야 한다.

 

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}

 

 

options 속성에 DefaultFirebaseOptions 를 넣으려면 'firebase_options.dart' 를 import 가 필요한데 나는 해당 파일을 찾을 수 없었다.

 

import 'firebase_options.dart';

 

 

이유는 Firebase CLI 설치가 안되어 있어서였다.

 

 

Firebase CLI

 

Firebase 프로젝트를 관리, 조회, 배포할 수 있는 다양한 도구를 제공해 준다고 한다.

 

 

Firebase CLI 설치

(진행 중이던 프로젝트의 터미널에서 명령어를 실행하였다.)

 

 

 

아래의 cURL 명령어를 터미널에 입력한다.

 

$ curl -sL https://firebase.tools | bash

 

 

 

Password 입력이 뜨면 본인 컴퓨터 비밀번호를 입력한다.

그리고 엔터를 누르면 설치가 진행된다.

 

 

 

로그인 후 Firebase CLI 테스트

 

아래 명령어로 로그인을 진행한다.

로그인을 통해서 Firebase 계정에 연결하고 Firebase 프로젝트에 대한 접근 권한을 부여한다.

 

$ firebase login

 

 

 

 

y를 입력하고 엔터를 누르면 권한 승인을 위한 url 주소가 뜬다.

클릭하여 구글 로그인을 하면 Firebase CLI의 액세스 권한 부여 승인에 관한 메시지가 뜬다.

 

 

 

권한을 부여하면 계정 연결 성공

 

 

 

이제 Firebase에 등록되어 있는 프로젝트를 확인한다.

해당 명령어로 CLI가 올바르게 설치되었고 사용자 계정에 액세스하는지 테스트할 수 있다.

 

$ firebase projects:list

 

 

 

 

Firebase CLI 사용하기

 

연결이 잘 되었다면 이제 FlutterFire 명령어를 사용할 수 있다.

 

이제 Flutter 앱이 Firebase에 연결되도록 구성하기 위해 configure 명령어를 실행한다.

그리고 원하는 프로젝트와 플랫폼을 선택한다.

 

$ flutterfire configure

 

 

방향키로 프로젝트를 선택할 수 있다.

 

 

 

플랫폼은 스페이스바를 눌러 선택 또는 선택 해제를 할 수 있다.

선택 후 엔터를 누른다.

 

 

 

 

 

 

모두 완료하고 나면, 해당 프로젝트에 Firebase 의 모든 구성들을 사용할 수 있는 firebase_options.dart 파일이 생성된다.

 

 

초기화

 

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

 

Firebase CLI 를 설치하자 드디어 firebase_options.dart 파일을 import 할 수 있게 되었다.

 

 

 

그리고 firebase_options.dart 파일을 통해 DefaultFirebaseOptions.currentPlatform 을 가져올 수 있게 되었다.

 

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}

 

 

 

 

 

<참고>

 

https://youtu.be/se6wKk-w8lI

 

https://firebase.google.com/docs/cli?hl=ko 

 

Firebase CLI 참조  |  Firebase 문서

 

firebase.google.com

 

https://firebase.flutter.dev/docs/overview/#using-the-flutterfire-cli

 

FlutterFire Overview | FlutterFire

<img

firebase.flutter.dev

 

 

728x90