Firebase App named '[DEFAULT]' already exists (app/duplicate-app)

parkwookyun picture parkwookyun · Apr 10, 2017 · Viewed 49.1k times · Source

Hi I am trying to unit test while developing a simple web with AngularJS + Firebase, but I have a problem defining the spec and trying the test runner

myProject/test/spec/main.js :

describe('Controller: MainCtrl', function() {

var MainCtrl, scope

beforeEach(module('MainApp'));

beforeEach(inject(function ($controller, $rootScope) {
    scope = $rootScope.$new();
    MainCtrl = $controller('MainCtrl', {
        $scope: scope
    })
}));

it('should....',function(){
    expect(true).toBe(true)
})
it('should2....',function(){
    expect(false).toBe(false)
})
});

result:

PhantomJS 2.1.1 (Mac OS X 0.0.0) Controller: MainCtrl should.... FAILED
Error: [$injector:modulerr] Failed to instantiate module MainApp due 
to: Firebase: Firebase App named '[DEFAULT]' already exists 
(app/duplicateapp).

However, defining the spec once is not a problem. For example:

it('should....',function(){
   expect(true).toBe(true)
})

I do not know why this is the reason I give a hint to me

Here is the project I am developing.

https://github.com/parkwookyun/firebase-angular-board

Answer

Isaac Sekamatte picture Isaac Sekamatte · Feb 8, 2018
if (!firebase.apps.length) {
   firebase.initializeApp({});
}else {
   firebase.app(); // if already initialized, use that one
}

Similar answer here