initialize static method

Future initialize({
  1. required String apiKey,
  2. required String projectId,
  3. required String appId,
  4. required String messagingSenderId,
  5. bool useGoogleServicesJson = false,
})

Implementation

static Future initialize({
  required String apiKey,
  required String projectId,
  required String appId,
  required String messagingSenderId,
  bool useGoogleServicesJson = false,
}) async {
  if (Platform.isWindows) {
    FireDartFirebaseAuth.initialize(apiKey, FireDartVolatileStore());
    FireDartFirestore.initialize(projectId);

    //Wait Until SignIn Ready?

    // bool ready = false;

    // var auth = FireDartFirebaseAuth.instance;
    // auth.signInState.listen((state) {
    //   print("Signed ${state ? "in" : "out"}");
    //   ready = false;
    // });

    // while (ready == false) {
    //   print("Check Firebase Status..");
    //   await Future.delayed(Duration(milliseconds: 200));
    // }
  } else {
    if (useGoogleServicesJson) {
      await Firebase.initializeApp();
    } else {
      await Firebase.initializeApp(
        options: FirebaseOptions(
          appId: appId,
          apiKey: apiKey,
          messagingSenderId: messagingSenderId,
          projectId: projectId,
        ),
      );
    }

    bool ready = false;
    FirebaseAuth.instance.authStateChanges().listen((event) {
      ready = true;
    });

    while (ready == false) {
      print("Check Firebase Status..");
      await Future.delayed(Duration(milliseconds: 200));
    }
  }
}