2

I was creating a Flutter app, and I was using a firebase to authenticate. it shows me

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following FirebaseException was thrown building Builder:
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

The relevant error-causing widget was:
  MaterialApp file:///C:/Users/soham/AndroidStudioProjects/flash-chat/lib/main.dart:12:12

When the exception was thrown, this was the stack:
#0      MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:118:5)
#1      Firebase.app (package:firebase_core/src/firebase.dart:52:41)
#2      FirebaseAuth.instance (package:firebase_auth/src/firebase_auth.dart:37:47)
#3      new _RegistrationScreenState (package:flash_chat/screens/registration_screen.dart:19:30)
#4      RegistrationScreen.createState (package:flash_chat/screens/registration_screen.dart:11:45)
#5      new StatefulElement (package:flutter/src/widgets/framework.dart:4635:25)
#6      StatefulWidget.createElement (package:flutter/src/widgets/framework.dart:900:38)
...     Normal element mounting (132 frames)
#138    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
#140    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5624:32)
#141    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6001:17)
#142    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#144    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#145    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#146    StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#147    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#148    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#149    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#150    ProxyElement.update (package:flutter/src/widgets/framework.dart:4906:5)
#151    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:183:11)
#152    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#153    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#154    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#155    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#156    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#157    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#158    StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#159    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#160    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#161    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#162    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#163    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#164    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#165    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#166    StatelessElement.update (package:flutter/src/widgets/framework.dart:4627:5)
#167    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#168    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#169    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#170    ProxyElement.update (package:flutter/src/widgets/framework.dart:4906:5)
#171    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#172    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#173    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#174    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#175    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
#176    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:866:20)
#177    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
#178    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
#179    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
#180    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
#184    _invoke (dart:ui/hooks.dart:253:10)
#185    _drawFrame (dart:ui/hooks.dart:211:3)
(elided 3 frames from dart:async)

This exception as soon as i redirect to the Registration page, Hers's my Registration page* code,

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flash_chat/constants.dart';
import 'package:flutter/material.dart';

import '../components/ButtonComponents.dart';
import 'chat_screen.dart';

class RegistrationScreen extends StatefulWidget {
  static const String route = '/registration';
  @override
  _RegistrationScreenState createState() => _RegistrationScreenState();
}

class _RegistrationScreenState extends State<RegistrationScreen> {
  /*
  * Authentication Instance
  * */
  final _auth = FirebaseAuth.instance;
  String email;
  String password;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Padding(
        padding: EdgeInsets.symmetric(horizontal: 24.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            Hero(
              tag: 'logo',
              child: Container(
                height: 200.0,
                child: Image.asset('images/logo.png'),
              ),
            ),
            SizedBox(
              height: 48.0,
            ),
            TextField(
              keyboardType: TextInputType.emailAddress,
              textAlign: TextAlign.center,
              onChanged: (value) {
                email = value;
              },
              decoration: KTextFieldDecoration.copyWith(
                hintText: 'Enter your email',
                hintStyle: TextStyle(
                  color: Colors.black54,
                ),
              ),
            ),
            SizedBox(
              height: 8.0,
            ),
            TextField(
              obscureText: true,
              textAlign: TextAlign.center,
              onChanged: (value) {
                password = value;
              },
              decoration: KTextFieldDecoration.copyWith(
                hintText: 'Enter your password',
                hintStyle: TextStyle(
                  color: Colors.black54,
                ),
              ),
            ),
            SizedBox(
              height: 24.0,
            ),
            ButtonComponents(
              color: Colors.blueAccent,
              text: 'Register',
              onPressedEvent: () async {
                try {
                  final newUser = await _auth.createUserWithEmailAndPassword(
                      email: email, password: password);
                  if (newUser != null) {
                    Navigator.pushNamed(context, ChatScreen.route);
                  }
                } catch (e) {
                  print(e);
                }
              },
            ),
          ],
        ),
      ),
    );
  }
}

android/app/build.gradle file look like below,

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}


def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    //throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 29

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "co.sohamroycandy.flash_chat"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation 'com.google.firebase:firebase-firestore:21.3.1'
}

and here comes my android/build.gradle file,

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'com.google.gms:google-services:4.3.3'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Can anyone help me to resolve the issue? Thanks in advance.

Nick
  • 689
  • 14
  • 27
  • 1
    Please check the duplicate https://stackoverflow.com/questions/63492211/no-firebase-app-default-has-been-created-call-firebase-initializeapp-in/63492262#63492262 – Peter Haddad Aug 20 '20 at 05:48
  • thank you so much. I had to initialize on the main. that worked well, – Nick Aug 20 '20 at 06:08
  • 1
    No problem the update was recent so you will face other problems also so check this https://stackoverflow.com/questions/63486340/cloud-firestore-0-14-0-how-to-use-the-data-method/63486506#63486506 and this also https://stackoverflow.com/questions/63482162/undefined-class-firebaseuser/63482356#63482356 – Peter Haddad Aug 20 '20 at 06:09

0 Answers0