2

Hallo ich Unit-Test versuchen, während eine einfache Web mit AngularJS + Firebase zu entwickeln, aber ich habe ein Problem, die Spezifikation zu definieren und den Test Läufer versuchen,Firebase App namens ‚[STANDARD]‘ ist bereits vorhanden (app/Duplikat-app)

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) 
}) 
}); 

Ergebnis:

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

sobald jedoch die Spezifikation definiert, ist das kein Problem. Zum Beispiel:

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

Ich weiß nicht, warum dies der Grund, warum ich einen Hinweis zu geben mir

Hier ist das Projekt, das ich entwickeln werde.

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

Antwort

1

i an Ihrem GitHub Repo zu sehen, nur einen Blick, dass es mehr Js Dateien ist als in Ihrer Frage vorgeschlagen. Ich hatte 2 separate .js-Dateien. Beide sind auf der gleichen HTML-Seite enthalten, die die Standard-App sowohl konfiguriert als auch initialisiert hat, obwohl es nur einmal für diese Seite benötigt wurde, glaube ich. Was für mich funktionierte war, die zweite "initializeApp()" auskommentieren zu lassen und diesen Fehler habe ich nicht mehr. Versuchen Sie in Ihren .js nach dem Folgenden zu suchen und eine der Initialisierungen zu kommentieren oder zu löschen.

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

hatte ich das gleiche Problem Feuerbasis verwenden, und ich feststellen, dass ich die Feuerbasis zweimal Beispiel wurde initialisiert:

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

In meinem Fall habe ich reagieren wurde mit, Und ich rief initializeFirebase() aus zwei verschiedenen Komponenten, aber ich habe beschlossen, es von der übergeordneten Komponente zu nennen. Und jetzt bin ich in der Lage meine Datenbank abzufragen, fügen Datensätze, entfernen usw.

hoffte, das hilft jemand

0

ich vor kurzem dieses Problem in meinem eigenen Code gelöst. Mein Problem wurde durch versehentliches Verknüpfen meiner JavaScript-Datei, die initializeApp() aufruft, im Kopf und im Textkörper meiner HTML-Datei verursacht. Meine Lösung war, das doppelte Javascript-Tag im Kopf meiner HTML-Datei zu löschen, so dass nur eine im Körper existierte.

Scan durch den Code, um sicherzustellen, Sie nur initializeApp nennen() einmal. Dies schließt alle js-Dateien ein, die die Methode aufrufen oder die js-Datei in Ihrer html-Datei duplizieren.

Verwandte Themen