No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase

FirebaseFlutterAndroid StudioDartGoogle Cloud-Firestore

Firebase Problem Overview


I am building a Flutter application and I have integrated Firebase, but I keep getting this error when I click on a button either to register, login or logout. I have seen other people have asked the same question, but none seems to work for me. I am using Flutter and Android Studio. How can I fix this problem?

This is an excerpt of my code

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.red,
      body: Center(
        child: Container(
          child: RaisedButton(
            onPressed: () {
              FirebaseAuth.instance.signOut().then((value) {
                Navigator.pushReplacement(
                    context,
                    MaterialPageRoute(
                        builder: (context) =>
                            LoginScreen()));
              });
            },
            child: Text("Logout"),
          )
        )
      )
    );
  }
}

Below is the thrown exception

══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following FirebaseException was thrown while handling a gesture:
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

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      _HomeScreenState.build.<anonymous closure> (package:cosytok/screens/home.dart:20:28)
#4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
#5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
#6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
#7      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
#8      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
#9      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:219:7)
#10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:477:9)
#11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:78:12)
#12     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:124:9)
#13     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
#14     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:122:18)
#15     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:108:7)
#16     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:220:19)
#17     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
#18     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
#19     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
#20     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
#24     _invoke1 (dart:ui/hooks.dart:267:10)
#25     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
(elided 3 frames from dart:async)

Handler: "onTap"
Recognizer:
  TapGestureRecognizer#f0104
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════════════════════════
The following FirebaseException was thrown while handling a gesture:
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

Firebase Solutions


Solution 1 - Firebase

Starting Since August 17 2020

All Firebase versions have been updated and now you have to call Firebase.initializeApp() before using any Firebase product, for example:

First, all Firebase products now depend on firebase_core version (0.5.0+), therefore you need to add it in the pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  firebase_core : ^0.5.0
  # cloud_firestore: ^0.14.0 other firebase dependencies

Then you have to call Firebase.initializeApp():

First Example
import 'package:flutter/material.dart';

// Import the firebase_core plugin
import 'package:firebase_core/firebase_core.dart';

void main() {
  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      // Initialize FlutterFire
      future: Firebase.initializeApp(),
      builder: (context, snapshot) {
        // Check for errors
        if (snapshot.hasError) {
          return SomethingWentWrong();
        }

        // Once complete, show your application
        if (snapshot.connectionState == ConnectionState.done) {
          return MyAwesomeApp();
        }

        // Otherwise, show something whilst waiting for initialization to complete
        return Loading();
      },
    );
  }
}
Second Example with Firestore:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: FirstRoute(title: 'First Route'),
    );
  }
}

class FirstRoute extends StatefulWidget {
  FirstRoute({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _FirstRouteState createState() => _FirstRouteState();
}

class _FirstRouteState extends State<FirstRoute> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("test"),
        ),
        body: FutureBuilder(
          future: getData(),
          builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return Column(
                children: [
                  Container(
                    height: 27,
                    child: Text(
                      "Name: ${snapshot.data.data()['name']}",
                      overflow: TextOverflow.fade,
                      style: TextStyle(fontSize: 20),
                    ),
                  ),
                ],
              );
            } else if (snapshot.connectionState == ConnectionState.none) {
              return Text("No data");
            }
            return CircularProgressIndicator();
          },
        ));
  }

  Future<DocumentSnapshot> getData() async {
    await Firebase.initializeApp();
    return await FirebaseFirestore.instance
        .collection("users")
        .doc("docID")
        .get();
  }
}
Third Example:

Initialize it in initState() then call setState() which will call the build() method.

  @override
  void initState() {
    super.initState();
    Firebase.initializeApp().whenComplete(() { 
      print("completed");
      setState(() {});
    });
  }
Fourth Example:

Initialize it in the main() method after calling WidgetsFlutterBinding.ensureInitialized();

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}
Note: You only have to call initializeApp() once

Solution 2 - Firebase

  1. Add to pubspec.yaml

    firebase_core :
    
  2. add to main.dart

    import 'package:firebase_core/firebase_core.dart';
     
    void main() async {
       WidgetsFlutterBinding.ensureInitialized();
       await Firebase.initializeApp();
       runApp(MyApp());
    }
    

Solution 3 - Firebase

If you followed Peter's answer and are still getting the same error, check to make sure anything else you have in your main function comes after the await Firebase.initializeApp() call, like so:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
  runApp(MyApp());
}

Solution 4 - Firebase

First, add this dependency:

firebase_core :

Second: in the project main function, add these two lines and make the function async:

void main() async {
    // These two lines
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    //
    runApp(MyApp());
}

Now you can use Firebase normally in any file or widget in the project.

The FutureBuilder widget will work either, but you must add it every time you want to access Firebase.

Solution 5 - Firebase

Since August 2017, all Firebase services have been updated so that you have to call Firebase.initializeApp() in your main before you can use any of the Firebase products, for example:

If you want to use the firebase_core plugin in a flutter application, then in your pubspec.yaml file add the firebase_core as below

dependencies:
  flutter:
    sdk: flutter
  firebase_core : ^1.2.0

Then call the Firebase.initializeApp(): in your app. same as something below:

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

Solution 6 - Firebase

Peter's answer is perfect!! But if you still get an error in your code and following the Flutter Firebase codelab, note that those tutorials are outdated as of August 2020 and not updated yet.

You need to do many other changes like:

  • replace .data with .data()
  • replace updateData with update

Solution 7 - Firebase

Flutter Web with Firebase

If you are using Flutter Web with Firebase make sure you have the SDKs installed in the body tag of your ./web/index.html

  <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-analytics.js"></script>

Furthermore, make sure you call firebase.initializeApp(...) with the configuration parameters in the index.html as well.

  <script>
    // Your web app's Firebase configuration
    // For Firebase JS SDK v7.20.0 and later, measurementId is optional
    var firebaseConfig = {
      apiKey: "AIz...",
      authDomain: "...",
      databaseURL: "https://<project-name>.firebaseio.com",
      projectId: "...",
      storageBucket: "<project-name>.appspot.com",
      messagingSenderId: "...",
      appId: "...",
      measurementId: "..."
    };
    firebase.initializeApp(firebaseConfig);
    firebase.analytics();
  </script>

At last configure firebase as described in Peter Haddad's answer:

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

Solution 8 - Firebase

  • Initialize Firebase on all platforms using CLI.
  • No need to add any native code.
  • No need to download any Google services file.
  1. Install FlutterFire CLI

    dart pub global activate flutterfire_cli
    
  2. (Optional) Add the following line to your ~/.zshrc file and save it

    export PATH="$PATH":"$HOME/.pub-cache/bin"
    
  3. Run the configure:

    flutterfire configure
    
  4. Press enter to configure all the platforms

    enter image description here

  5. You should now have a lib/firebase_options.dart file. Import this file in your main.dart and use Firebase.initializeApp.

    import 'firebase_options.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
    
      // This is the last thing you need to add. 
      await Firebase.initializeApp(
        options: DefaultFirebaseOptions.currentPlatform,
      );
      
      runApp(...);
    }
    

Migrating to Dart-only initialization:

If you already have an existing application, you can migrate it in the following ways.

  • Android:
    1. Delete google-services.json file from <flutter-project>/android/app:

      enter image description here

    2. Delete the following line in <flutter-project>/android/build.gradle file

      enter image description here

    3. Delete the following line in <flutter-project>/android/app/build.gradle file

      enter image description here

  • iOS

    Open <flutter-project>/ios/Runner.xcworkspace file in Xcode and delete the GoogleService-Info.plist file from the Runner.

    enter image description here

  • macOS

    Open <flutter-project>/macos/Runner.xcworkspace file in Xcode and delete the GoogleService-Info.plist file from the Runner.

    enter image description here

More information can be found here

Solution 9 - Firebase

You need to add await Firebase.initializeApp(); which is a Future. Do it inside the dart file that is running your Firebase function like below:

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

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MaterialApp());
}

Solution 10 - Firebase

If you still have the problem when you leave the app to the main screen, you could add this to whatever .dart file using Firebase:

class App extends StatelessWidget {

  final Future<FirebaseApp> _initialization = Firebase.initializeApp();

  @override
  Widget build(BuildContext context) {

Or in the case of a StatefulWidget:

import 'package:flutter/material.dart';

// Import the firebase_core plugin
import 'package:firebase_core/firebase_core.dart';

void main() {
  runApp(App());
}

class App extends StatefulWidget {
  _AppState createState() => _AppState();
}

class _AppState extends State<App> {
  // Set default `_initialized` and `_error` state to false
  bool _initialized = false;
  bool _error = false;

  // Define an async function to initialize FlutterFire
  void initializeFlutterFire() async {
    try {
      // Wait for Firebase to initialize and set `_initialized` state to true
      await Firebase.initializeApp();
      setState(() {
        _initialized = true;
      });
    } catch(e) {
      // Set `_error` state to true if Firebase initialization fails
      setState(() {
        _error = true;
      });
    }
  }

  @override
  void initState() {
    initializeFlutterFire();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // Show error message if initialization failed
    if(_error) {
      return SomethingWentWrong();
    }

    // Show a loader until FlutterFire is initialized
    if (!_initialized) {
      return Loading();
    }

    return MyAwesomeApp();
  }
}

For more information, check this link.

Solution 11 - Firebase

First import the firebase_core plugin and generated firebase_options.dart file:

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

Next, within the main function, ensure WidgetsFlutterBinding is initialized and then initialize Firebase:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}

The DefaultFirebaseOptions.currentPlatform are imported from our generated firebase_options.dart file.

Here is full example

// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:async';
import 'package:firebase_core_example/firebase_config.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

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

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

  String get name => 'foo';

  FirebaseOptions get firebaseOptions => const FirebaseOptions(
        appId: '1:448618578101:ios:0b650370bb29e29cac3efc',
        apiKey: 'AIzaSyAgUhHU8wSJgO5MVNy95tMT07NEjzMOfz0',
        projectId: 'react-native-firebase-testing',
        messagingSenderId: '448618578101',
      );

  Future<void> initializeDefault() async {
    FirebaseApp app = await Firebase.initializeApp(
      options: DefaultFirebaseConfig.platformOptions,
    );
    print('Initialized default app $app');
  }

  Future<void> initializeSecondary() async {
    FirebaseApp app =
        await Firebase.initializeApp(name: name, options: firebaseOptions);

    print('Initialized $app');
  }

  void apps() {
    final List<FirebaseApp> apps = Firebase.apps;
    print('Currently initialized apps: $apps');
  }

  void options() {
    final FirebaseApp app = Firebase.app(name);
    final options = app.options;
    print('Current options for app $name: $options');
  }

  Future<void> delete() async {
    final FirebaseApp app = Firebase.app(name);
    await app.delete();
    print('App $name deleted');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Firebase Core example app'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(20),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              ElevatedButton(
                onPressed: initializeDefault,
                child: const Text('Initialize default app'),
              ),
              ElevatedButton(
                onPressed: initializeSecondary,
                child: const Text('Initialize secondary app'),
              ),
              ElevatedButton(
                onPressed: apps,
                child: const Text('Get apps'),
              ),
              ElevatedButton(
                onPressed: options,
                child: const Text('List options'),
              ),
              ElevatedButton(
                onPressed: delete,
                child: const Text('Delete app'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Solution 12 - Firebase

This is the way to initialize firebase in 2022

First of all, Install FlutterFire with this link ==> Flutter Fire Installation Link

After installing FlutterFire, you'll need to add these lines of code in your lib/main.dart file

  import 'package:firebase_core/firebase_core.dart';
  import 'firebase_options.dart';  

Then edit your Main Function as done below

void main() async {
 WidgetsFlutterBinding.ensureInitialized();
   await Firebase.initializeApp(options:                                  
   DefaultFirebaseOptions.currentPlatform,);
 runApp(MyApp()); 
 }

This can change in the future, so refer to this link for the latest implementation reference below

Initializing FlutterFire#

Solution 13 - Firebase

Since Flutter versions 2.8, FlutterFire can now be initialized from Dart on all platforms using the Firebase.initializeApp function. There's a more simple and quicker way to initialize a firebase project, instead of downloading the .json and .plist file from the firebase console and placing them into your Flutter project folders which can result in several warnings. This is a problem I've experienced several times and here's how I solved it.

After creating your project in the firebase console steps here and installed the Firebase CLI here, please proceed with the following steps:

You can skip step 1 and jump to step 4 if you've already configured your firebase project with flutterfire configure.

  1. From your project root terminal, command:

      $ flutterfire configure   
        // This requires the Firebase CLI to work.
    
  2. Select firebase project by hitting return or enter.

  3. insert the bundle ID. You can get this by right clicking the ios folder > then click'Open in xcode'. The Bundle Identifier will appear in the right white panel and you'll have to type this in the terminal manually when prompted.

** Proceed to step 5 if you already have the firebase_core plugin installed. **

  1. Install the latest version of the firebase_core plugin by running this command from your project root directory:

     $ flutter pub add firebase_core  // Adds to pubspec.yaml
    
  2. Add imports to the main file:

     import 'package:firebase_core/firebase_core.dart'; // 
     import 'firebase_options.dart'; // Generated file
    
  3. Update your main function to initialize firebase with this async function:

      Future<void> main() async {
       WidgetsFlutterBinding.ensureInitialized();
       await Firebase.initializeApp(options: 
       DefaultFirebaseOptions.currentPlatform);
       runApp(const YourAppName());
      }
    

See the FlutterFire documentation for more information.

Solution 14 - Firebase

I needed to reconfigure the Firebase app with FlutterFire cli.

https://firebase.flutter.dev/docs/cli

  1. Install firebase-tool via NPM: npm install -g firebase-tools
  2. Install flutterfire cli: dart pub global activate flutterfire_cli
  3. Run this command to configure firebase in your project: flutterfire configure

Follow the above link and initialise as follows:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  runApp(const MyApp());
}

As its await call, The app will show splash screen and Firebase may not initialise so I proceeded next with another FutureBuilder for home screen to make sure Firebase app is initialised before I use FirebaseAuth.

home: FutureBuilder(
          future: Firebase.initializeApp(),
          builder: (context, snapshot) {
            if (snapshot.hasError) {
              return Text(snapshot.error.toString(),
                  style: TextStyle(fontSize: 10));
            }

            if (snapshot.connectionState == ConnectionState.done) {
              return StreamBuilder(
                stream: FirebaseAuth.instance.authStateChanges(),
                builder: (context, snapshot) {
                  return snapshot.hasData ? Home() : AuthPage();
                },
              );
            } else {
              return Text('');
            }
          })

Solution 15 - Firebase

You can initialize in the main.dart file as well like this using FutureBuilder.

 future: Firebase.initializeApp(),

Look at this example.

void main() {
  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      // Initialize FlutterFire
      future: Firebase.initializeApp(),
      builder: (context, snapshot) {
       return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'NEWSAPI.org',
          home: SplashScreen(),
       
          routes: <String, WidgetBuilder>{
            SPLASH_SCREEN: (BuildContext context) => SplashScreen(),
          },);
      },
    );
  }
}

Solution 16 - Firebase

In my case it was because for the Web version you have to manually add stuff in the index.html file, not only the .js dependency, but the configuration. See Web Installation.

We tend to forget that for most stuff Flutter is compiled to the target without the need to change anything target-specific, but in this case one must add the configuration for each target.

Solution 17 - Firebase

Use This for flutter :

   const firebaseConfig = {

    apiKey: "",
    authDomain: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: "",
    measurementId: ""
    };
   
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.getAnalytics(app);

Instead of this

   const firebaseConfig = {

    apiKey: "",
    authDomain: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: "",
    measurementId: ""
    };

    // Initialize Firebase
    const app = initializeApp(firebaseConfig);
    const analytics = getAnalytics(app);

Solution 18 - Firebase

you neeed to add await FirebaseApp.initializeApp() in main function remember to add await in main function

Solution 19 - Firebase

If you've set Firebase correctly, do not forget to add

> await

before

> Firebase.initializeApp();

That is mainly the problem with that Exception.

> await Firebase.initializeApp();

Solution 20 - Firebase

On my case, I added web support to my existing project. The one thing which solved the issue is,

In the web/index.html file

Changing the verison of all the firebase sdk imports from 9.6.6 to 8.10.0

Snippet

<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app-check.js"></script>  
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-firestore.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-storage.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
 <script>
  var firebaseConfig = {
   ....
   }

Solution 21 - Firebase

I wanted to comment. But this issue have lot of trails. For my case.

I was initializing Injection Container Before Firebase. Hierarchy needs to be check.

Hive.init(directory.path);
  await Firebase.initializeApp();// before
  await di.init();

Solution 22 - Firebase

Initialise with firebase options

void main() async{
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform).catchError((e){
  print(" Error : ${e.toString()}");
});
}

like this

Solution 23 - Firebase

Solution 1:

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

Solution 2:

Please set up Firebase Properly and give access.

Solution 24 - Firebase

The problem for me was I initialized it without "await":

void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    Firebase.initializeApp();

The correct way is:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKennedy OwusuView Question on Stackoverflow
Solution 1 - FirebasePeter HaddadView Answer on Stackoverflow
Solution 2 - FirebaseMuhammad AshrafView Answer on Stackoverflow
Solution 3 - FirebaseSludgeView Answer on Stackoverflow
Solution 4 - FirebaseAbdelrahman TareqView Answer on Stackoverflow
Solution 5 - FirebaseolammyView Answer on Stackoverflow
Solution 6 - FirebaseMuhammadView Answer on Stackoverflow
Solution 7 - FirebaseJensView Answer on Stackoverflow
Solution 8 - FirebaseCopsOnRoadView Answer on Stackoverflow
Solution 9 - FirebasegiftmarimoView Answer on Stackoverflow
Solution 10 - Firebaseuser13848261View Answer on Stackoverflow
Solution 11 - FirebaseParesh MangukiyaView Answer on Stackoverflow
Solution 12 - Firebasefritz-playmakerView Answer on Stackoverflow
Solution 13 - FirebaseSharonView Answer on Stackoverflow
Solution 14 - FirebaseZahid Usman CheemaView Answer on Stackoverflow
Solution 15 - FirebaseRahul KushwahaView Answer on Stackoverflow
Solution 16 - FirebaseMappaMView Answer on Stackoverflow
Solution 17 - FirebaseCrimsonPiiiikView Answer on Stackoverflow
Solution 18 - FirebaseVivek dusadView Answer on Stackoverflow
Solution 19 - Firebasedev.bojackView Answer on Stackoverflow
Solution 20 - FirebaseRajesh Jr.View Answer on Stackoverflow
Solution 21 - FirebaseBeatle RefractorView Answer on Stackoverflow
Solution 22 - FirebaseKamesh VadivelView Answer on Stackoverflow
Solution 23 - FirebaseTushar MahmudView Answer on Stackoverflow
Solution 24 - FirebaseAshraf MaherView Answer on Stackoverflow