이슈 / 에러
FirebaseException ([core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp())
해결 방법
플러터에서 파이어베이스 연동시 반드시 파이어베이스 초기화 함수를 호출해야한다.
공식 문서의 초기화 함수를 그대로 사용해도 에러가 발생해서 찾아보니, 초기화가 되기전 데이터를 불러와서 발생하는 문제였다. 따라서 파이어베이스 초기화 함수를 future로 변경하고 whenComplete로 다음을 진행하도록 하였다.
최상위 클래스인 MyApp을 stateful로 변경하고 아래의 코드를 추가한다.
이미 초기화 함수가 있는 경우는 초기화 함수를 future로 변경 후 whenComplete로 진행해준다.
@override
void initState() {
//firebase null 에러 해결
initializeFlutterFire().whenComplete(() {
initMarketWithNFC();
initUser();
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;
});
}
}
'Flutter > Flutter Issue' 카테고리의 다른 글
[Flutter] 플러터 2.0 null-safety 이해하기 (3) | 2021.05.01 |
---|---|
[플러터] curl: (3) URL using bad/illegal format or missing URL (0) | 2021.04.13 |
[플러터 이슈해결] upgrade시 흔히 발생하는 오류 (0) | 2021.01.05 |
[플러터] initState, dispose를 불러오지 않는 경우 (0) | 2020.12.24 |
[Flutter Error] Cannot fit requested classes in a single dex file (0) | 2020.10.15 |