I am getting the above error when calling Firebase.initializeApp()
in my flutter code.
I have followed the documentation here: https://firebase.flutter.dev/docs
Here is my pubspec.yaml
dependencies:
flutter:
sdk: flutter
firebase_core: ^0.5.0
cloud_firestore: ^0.14.0
firebase_auth: ^0.18.0
fl_chart: ^0.11.0
snapping_sheet: ^2.0.0
flutter_svg: ^0.18.0
flutter_redux: ^0.6.0
strings: ^0.1.2
random_string: ^2.1.0
redux_thunk: ^0.3.0
# firebase_crashlytics: ^0.1.4+1
dotted_line: ^2.0.1
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
dev_dependencies:
flutter_test:
sdk: flutter
Here is my flutter code:
void main() {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
final store = Store<AppState>(AppState.reducer, initialState: AppState.initial(), middleware: [thunkMiddleware]);
runApp(
FutureBuilder(
future: Firebase.initializeApp(),
builder: (context, snapshot) {
// Check for errors
if (snapshot.hasError) {
log(snapshot.error.toString());
return Container(color: Colors.red);
}
// Once complete, show your application
if (snapshot.connectionState == ConnectionState.done) {
return StoreProvider<AppState>(
store: store,
child: MoollaApp(store: store),
);
}
// Otherwise, show something whilst waiting for initialization to complete
return Container(color: Colors.green);
},
),
);
}
Here are the relevant part of my .gradle (app) file:
plugins {
id "com.android.application"
id "com.google.gms.google-services"
id "kotlin-android"
id "kotlin-android-extensions"
}
Here is my project gradle file:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0-alpha07'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
and my Application class extension:
class MyApp : FlutterApplication() {
override fun onCreate() {
super.onCreate()
}
}
As far as I can tell I have done everything correctly according to the docs.
Setting minifyEnabled & shrinkResources to false fixes it but why? I do not know. If somebody know please write a comment.
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
shrinkResources false
}
}
Many Firebase packages include native code. In general any package with native code requires a complete reset of the app on the device; meaning deleting initial values and executing native code for the first time:
Done!
It's difficult to say exactly what's wrong without sifting through your entire project, but here are a few actions that will likely remedy the problem.
flutter doctor
and verify everything is working as expected.flutter clean
followed by flutter pub get
.If you're still receiving the same error, then you likely made a mistake while editing one of the config files.
<meta-data />
tags as doing so would result in said error.What I ended up realizing after running into this issue, is that the error is super vague and doesn't necessarily mean there's a problem with firebase_core
, rather there could be an issue with any of the Firebase plugins. So to narrow down where the issue was, I went through each firebase import individually and commented it out in the Pubspec.yaml file and ran it (along with commenting out all the code in my project that used that import), until I found which package was causing the issue.
For me, I was experiencing the issue only when running on iOS. It turned out that the firebase_messaging
was the culprit and it was code that I had added to the iOS AppDelegate to handle the messaging that was no longer needed with the latest version of the firebase_messaging
plugin.
I started a fresh project and made sure to change:
classpath 'com.android.tools.build:gradle:4.2.0-alpha07'
to the version officially supported: 3.5.0
Not sure if that downgrade was necessary because as I say, I restarted an entirely fresh project and something else may have effected it.
I also filed a ticket with Google which may prove helpful for anyone else in the future: https://github.com/FirebaseExtended/flutterfire/issues/3212#issuecomment-675407420
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With