Ошибка: нет приложения Firebase '[DEFAULT]' - вызовите Firebase App.initializeApp()

У меня есть база данных firebase, связанная с двумя приложениями, одна из которых - приложение для iOS, а другое - веб-приложение, закодированное в node.js, которое является базовым алгоритмом, который устанавливает данные в базу данных. Когда я запускаю алгоритм, с которым я сталкиваюсь -

Ошибка: нет приложения Firebase '[DEFAULT]' - вызовите Firebase App.initializeApp().    при ошибке (native)     в R (/Users/dd/Desktop/Code/ NODE/node_modules/firebase/app-node.js:22:335)     на (/Users/dd/Desktop/Code/NODE/node_modules/firebase/app-node.js:20:68)     в Object.c [в качестве базы данных] (/Users/dd/Desktop/Code/NODE/node_modules/firebase/app-node.js:21:447)     в объекте. (/Users/dd/Desktop/Code/NODE/Bot.js:24:25)     на Module._compile (module.js: 570: 32)     в Object.Module._extensions..js(module.js: 579: 10)     на Module.load(module.js: 487: 32)     в tryModuleLoad (module.js: 446: 12)     в Function.Module._load (module.js: 438: 3)     на Module.runMain(module.js: 604: 10)     при запуске (bootstrap_node.js: 394: 7)     при запуске (bootstrap_node.js: 149: 9)     на bootstrap_node.js: 509: 3 dd-mac: NODE dd $

Может ли кто-нибудь помочь?

Ответ 1

Вероятно, вы вызываете firebase до того, как приложение будет инициализировано. Все вызовы firebase. должны появиться после .initializeApp();

firebase.initializeApp(config);
var db = firebase.firestore();

Ответ 2

Полный учебник источник ссылка

Используйте initializeApp перед @NgModule

    import { NgModule } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { RouteReuseStrategy } from '@angular/router';

    import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
    import { SplashScreen } from '@ionic-native/splash-screen/ngx';
    import { StatusBar } from '@ionic-native/status-bar/ngx';

    import { AppComponent } from './app.component';
    import { AppRoutingModule } from './app-routing.module';
    import { environment } from 'src/environments/environment';
    import { AuthenticateService } from './services/authentication.service';
    import { AngularFireAuthModule } from '@angular/fire/auth';

    import * as firebase from 'firebase';

    firebase.initializeApp(environment.firebase);

    @NgModule({
      declarations: [AppComponent],
      entryComponents: [],
      imports: [
        BrowserModule, 
        IonicModule.forRoot(), 
        AppRoutingModule,
        AngularFireAuthModule
      ],
      providers: [
        StatusBar,
        SplashScreen,
        AuthenticateService,
        { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule {}

Ответ 3

У меня была похожая проблема после интернет-руководства Firebase, найденного здесь.

Заголовок раздела "Инициализация нескольких приложений" вводит в заблуждение, поскольку первый пример под этим заголовком фактически демонстрирует, как инициализировать одно приложение по умолчанию. Вот сказал пример:

// Initialize the default app
var defaultApp = admin.initializeApp(defaultAppConfig);

console.log(defaultApp.name);  // "[DEFAULT]"

// Retrieve services via the defaultApp variable...
var defaultAuth = defaultApp.auth();
var defaultDatabase = defaultApp.database();

// ... or use the equivalent shorthand notation
defaultAuth = admin.auth();
defaultDatabase = admin.database();

Если вы переходите с предыдущего 2.x SDK, вам придется обновить способ доступа к базе данных, как показано выше, или вы получите сообщение об ошибке No Firebase App '[DEFAULT]'.

У Google есть лучшая документация в следующем:

  1. ИНИЦИАЛИЗАЦИЯ: https://firebase.google.com/docs/database/admin/start

  2. СОХРАНИТЬ: https://firebase.google.com/docs/database/admin/save-data

  3. ПОЛУЧИТЬ: https://firebase.google.com/docs/database/admin/retrieve-data

Ответ 4

Это может быть не лучшим ответом, но мне пришлось инициализировать приложение с помощью admin и firebase, как показано ниже. Я использую admin для своих целей и для firebase.

const firebase = require("firebase");
const admin = require("firebase-admin");

admin.initializeApp(functions.config().firebase);
firebase.initializeApp(functions.config().firebase);
// Get the Auth service for the default app
var authService = firebase.auth();

 function createUserWithEmailAndPassword(request, response) {
        const email = request.query.email;
        const password = request.query.password;
        if (!email) {
            response.send("query.email is required.");
            return;
        }
        if (!password) {
            response.send("query.password is required.");
            return;
        }
        return authService.createUserWithEmailAndPassword(email, password)
            .then(success => {
                let responseJson = JSON.stringify(success);
                console.log("createUserWithEmailAndPassword.responseJson", responseJson);
                response.send(responseJson);
            })
            .catch(error => {
                let errorJson = JSON.stringify(error);
                console.log("createUserWithEmailAndPassword.errorJson", errorJson);
                response.send(errorJson);
            });
    }

Ответ 5

Моя проблема была в том, что я добавил второй параметр:

AngularFireModule.initializeApp(firebaseConfig, 'reservas')

если я удаляю второй параметр, он работает нормально:

AngularFireModule.initializeApp(firebaseConfig)

Ответ 6

ВЫ ПРИЗЫВАЕТЕ ЭТО В JADE: firebase.initializeApp(config); В НАЧАЛЕ FUNC

script.
    function signInWithGoogle() {
        firebase.initializeApp(config);
        var googleAuthProvider = new firebase.auth.GoogleAuthProvider
        firebase.auth().signInWithPopup(googleAuthProvider)
        .then(function (data){
            console.log(data)
        })
        .catch(function(error){
            console.log(error)
        })
    }

Ответ 7

У меня была такая же проблема, и я просто исправил удаление второго параметра вызова экземпляра. Например:

firebase.initializeApp(environment.firebase);

Вместо

firebase.initializeApp(environment.firebase, 'orders')