Home > Mobile >  flutter error: FirebaseException ([core/no-app] No Firebase App '[DEFAULT]' has been creat
flutter error: FirebaseException ([core/no-app] No Firebase App '[DEFAULT]' has been creat

Time:02-03

I know I have to do Firebase.initializeApp() but I don't know where to put it, I tried some answers of others questions about the same issue but no one works.

I also tried adding WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); in void main()

Main.dart

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {

    final AuthenticationService _authenticationService =
        AuthenticationService();
    final AuthenticationBloc _authenticationBloc =
        AuthenticationBloc(_authenticationService);

    return AuthenticationBlocProvider(
      authenticationBloc: _authenticationBloc,
      key: null,
      child: StreamBuilder(
        initialData: null,
        stream: _authenticationBloc.user,
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return Container(
              color: Colors.pink,
              child: CircularProgressIndicator(),
            );
          } else if (snapshot.hasData) {
            return HomeBlocProvider(
              homeBloc: HomeBloc(DbFirestoreService(),
                  _authenticationService), // Inject the DbFirestoreService() & AuthenticationService()
              uid: snapshot.data,
              key: null,
              child: _buildMaterialApp(HomePage()),
            );
          } else {
            return _buildMaterialApp(Login());
          }
        },
      ),
    );
  }

  MaterialApp _buildMaterialApp(Widget homePage) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Journal',
      theme: ThemeData(
        primarySwatch: Colors.lightGreen,
        canvasColor: Colors.lightGreen.shade50,
        bottomAppBarColor: Colors.lightGreen,
      ),
      home: homePage,
    );
  }
}

auth.dart

class AuthenticationService implements AuthenticationApi {
  final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;

  FirebaseAuth getFirebaseAuth() {
    return _firebaseAuth;
  }

  Future<String> currentUserUid() async {
    var user = _firebaseAuth.currentUser;
    return user!.uid;
  }

  Future<void> signOut() async {
    return _firebaseAuth.signOut();
  }

  Future<String> signInWithEmailAndPassword(
      {required String email, required String password}) async {
    final UserCredential user = await _firebaseAuth.signInWithEmailAndPassword(
        email: email, password: password);
    return user.user!.uid;
  }

  Future<String> createUserWithEmailAndPassword(
      {required String email, required String password}) async {
    final UserCredential user = await _firebaseAuth
        .createUserWithEmailAndPassword(email: email, password: password);
    return user.user!.uid;
  }
}

I am new with flutter. Thanks for the help

CodePudding user response:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

...

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp({
    appId: 'your_app_id',
    apiKey: 'your_db_api_key',
    messagingSenderId: 'your_sender_id',
    projectId: 'your_project name',
  });

  runApp(MyApp());
}

...

those app_id, api_key, sender_id, project_name will be available from the firebase console easily.

CodePudding user response:

You should initialize your Firebase like this:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

Make sure to import Firebase core

import 'package:firebase_core/firebase_core.dart';
  •  Tags:  
  • Related