2

こんにちは、AngularJS + Firebaseを使用したシンプルなWebを開発している間にユニットテストをしようとしていますが、Firebaseベースのアプリケーション 'DEFAULT'が既に存在しています(アプリケーション/複製アプリケーション)

MYPROJECT /試験/スペック/ 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) 
}) 
}); 

結果は:

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). 

しかし、一度仕様を定義することは問題ではありません。たとえば:

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

これは私が私ここ

にヒントを与える理由である私にはわからないが、私が開発していたプロジェクトです。

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

答えて

1

私はあなたの質問で提案されているよりも多くの.jsファイルがあることを確認するためにあなたのgithubのレポをちらっと見ました。 私は2つの別々の.jsファイルを持っていました。どちらも同じHTMLページに含まれていて、既定のアプリケーションを構成して初期化していたときに、そのページの1回だけ実行する必要があったと思います。私のために働いたのは、2番目の "initializeApp()"をコメントアウトすることでした。あなたの.jsで以下を探して、初期化のうちの1つをコメントアウトまたは削除してみてください。

var config = { apiKey: "my api key", authDomain: "something.firebaseapp.com", databaseURL: "https://somesite.firebaseio.com", projectId: "myProjectId", storageBucket: "somesite.appspot.com", messagingSenderId: "someIntegers" }; //firebase.initializeApp(config);

0

私はfirebaseを使用して同じ問題を持っていた、と私は二回firebaseを初期化していることを発見し、例:私は反応し使っていた、そして私はinitializeFirebaseを呼んでいた私の場合は

function initializeFirebase(){  
var config = { 
    apiKey: "myApiKey", 
    authDomain: "myAuthDomain", 
    databaseURL: "myDatabaseUrl", 
    storageBucket: "myStorageBocket", 
    messagingSenderId: "idhere" 
    }; 
    //initialize firebase 
    firebase.initializeApp(config); 
} 

()の2つの異なるコンポーネントから、私はそれを親コンポーネントから呼び出すことに決めました。そして今、私は、私のデータベースを照会レコードを挿入、削除することができるよ、など

・ホープこれは誰か

0

に役立ちます私は最近、自分のコードでこの問題を解決しました。私の問題は、initializeApp()を呼び出すjavascriptファイルを誤ってHTMLファイルの本文と本文にリンクしたために発生しました。私の修正は、私のHTMLファイルの先頭に重複したjavascriptタグを削除して、本体に1つしか存在しないようにすることでした。

コードをスキャンして、initializeApp()を1回だけ呼び出すようにしてください。これには、メソッドを呼び出すか、htmlファイル内のjsファイルを複製するjsファイルが含まれます。

関連する問題