"No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase" : comment corriger ?

Firebase est un service d'hébergement proposé par la société Google. Il permet d'héberger à distance des données dans des bases de données en NoSQL du contenu. Il est donc très utilisé par les applications sur mobile, afin d'héberger à distance les données enregistrées. Ce système est compatible avec de nombreux langages. C'est notamment le cas des langages utilisés par Google pour le développement de ses produits. Il est ainsi compatible avec Dart, le framework multiplateforme de Google, et le langage Dart. Le message d'erreur "No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase" est lié aux instructions de code au lancement de votre application.

Depuis le 17 août 2020 et la mise à jour des versions de Firebase, il est obligatoire d'appeler la méthode "Firebase.initializeApp()" avant de faire appel aux produits Firebase. Avant d'appeler cette méthode, vous devez également indiquer que vous utilisez la librairie "firebase_core". La version minimum demandée est la 0.5. Indiquez sa présence dans le fichier "pubspec.yaml". Ce fichier est géré par le gestionnaire de paquets du langage Dart et il contient les spécifications des paquets à utiliser.

dependencies:
  flutter:
    sdk: flutter
  firebase_core : ^0.5.0
  # cloud_firestore: ^0.14.0 Exemple d'autres produits Firebase, on les inclut après le paquet "firebase_core"

Vous devez ensuite modifier votre code pour appeler la méthode "Firebase.initializeApp()". La méthode la plus simple est de l'appeler directement dans la fonction "main()" qui initialise le framework Flutter, juste après l'appel de la méthode "WidgetsFlutterBinding.ensureInitialized();".

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

Si vous utilisez Firestore, qui permet de gérer des bases de données stockées dans Firebase, vous pouvez également ajouter le code d'initialisation de l'instance de Firestore après la méthode "Firebase.initializeApp()" avant d'utiliser Firestore. Vous devez garder à l'esprit que cette méthode doit être appelée une seule fois, avant toute utilisation de Firebase ou d'un produit basé sur cette solution.

Future<DocumentSnapshot> getData() async {
    await Firebase.initializeApp();
    return await FirebaseFirestore.instance
        .collection("ma_table")
        .doc("ID")
        .get();
  }

Android