Ответ 1
Вероятно, вы вызываете firebase
до того, как приложение будет инициализировано. Все вызовы firebase.
должны появиться после .initializeApp();
firebase.initializeApp(config);
var db = firebase.firestore();
У меня есть база данных 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 $
Может ли кто-нибудь помочь?
Вероятно, вы вызываете firebase
до того, как приложение будет инициализировано. Все вызовы firebase.
должны появиться после .initializeApp();
firebase.initializeApp(config);
var db = firebase.firestore();
Полный учебник источник ссылка
Используйте 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 {}
У меня была похожая проблема после интернет-руководства 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 есть лучшая документация в следующем:
Это может быть не лучшим ответом, но мне пришлось инициализировать приложение с помощью 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);
});
}
Моя проблема была в том, что я добавил второй параметр:
AngularFireModule.initializeApp(firebaseConfig, 'reservas')
если я удаляю второй параметр, он работает нормально:
AngularFireModule.initializeApp(firebaseConfig)
ВЫ ПРИЗЫВАЕТЕ ЭТО В 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)
})
}
У меня была такая же проблема, и я просто исправил удаление второго параметра вызова экземпляра. Например:
firebase.initializeApp(environment.firebase);
Вместо
firebase.initializeApp(environment.firebase, 'orders')