错误: 没有创建 Firebase App’[ DEFAULT ]’-调用 Firebase App.initializeApp()

我有一个 Firebase 数据库链接到两个应用程序,一个是 iOS 应用程序,另一个是用 node.js 编码的网络应用程序,这是一个基本的算法,设置数据库。每当我运行算法,我面对的是-

错误: 没有创建 Firebase 应用程序“[ DEFAULT ]”-调用 Firebase InitializeApp (). 在错误(原生) 在 R (/Users/dd/Desktop/Code/NODE/NODE _ module/firebase/app-NODE. js: 22:335) 在(/Users/dd/Desktop/Code/NODE/NODE _ module/firebase/app-NODE. js: 20:68) 在 Object.c [作为数据库](/Users/dd/Desktop/Code/NODE/NODE _ module/firebase/app-NODE. js: 21:447) (/Users/dd/Desktop/Code/NODE/Bot.js: 24:25) 在 Module. _ edit (Module.js: 570:32) At Object. Module. _ ext. . js (Module.js: 579:10) 在 Module.load (module.js: 487:32) At tryModuleLoad (module.js: 446:12) 在 Function.Module. _ load (Module.js: 438:3) 在 Module.runMain (module.js: 604:10) At run (bootstrap _ node. js: 394:7) 在启动时(bootstrap _ node. js: 149:9) 在 bootstrap _ NODE. js: 509:3 dd-mac: NODE dd $

有人能帮帮忙吗?

246934 次浏览

我有一个类似的问题后,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]'错误。

谷歌在以下方面有更好的文档:

  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

这可能不是最好的答案,但是,我必须用管理员和 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);
});
}

你可能在应用程序初始化之前调用了 firebase。所有对 firebase的调用必须来自 之后.initializeApp();

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

您可以在 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)
})
}

我的问题是因为我添加了第二个参数:

AngularFireModule.initializeApp(firebaseConfig, 'reservas')

如果我去掉第二个参数,它就能正常工作:

AngularFireModule.initializeApp(firebaseConfig)

如果你使用角度,这里是一个解决方案。

完成教程 资料来源: http://www.freakyjolly.com/ionic-4-firebase-login-register-by-email-and-password/”rel = “ nofollow noReferrer”> link

在@NgModule 之前使用 InitializeApp

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 {}

扑网

对于我来说,在“ release”模式下运行应用程序时发生了错误

flutter run -d chrome --release

当我在 Firebase 主机上部署应用程序时

firebase deploy

解决方案

因为我在 index.html 中初始化了 Firebase,所以必须更改 Firebase 和 main.dart.js 的实现顺序

<script>
var firebaseConfig = {
apiKey: "xxxxxxxxxxxxxxxxxxxxxx",
authDomain: "xxxxxxxxxxx.firebaseapp.com",
databaseURL: "https://xxxxxxxxxx.firebaseio.com",
projectId: "xxxxxxxxxxx",
storageBucket: "xxxxxxxx.appspot.com",
messagingSenderId: "xxxxxxxxxxx",
appId: "1:xxxxxxxxxx:web:xxxxxxxxxxxxx",
measurementId: "G-xxxxxxxxx"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>


//moved below firebase init
<script src="main.dart.js" type="application/javascript"></script>

如果你使用飞镖和扑动

  1. 向 pubspace.ymal 添加 firebase _ core 依赖项。
  2. 去主站 Dart
  3. Import‘ package: firebase _ core/firebase _ core. dart’;

4. 在 main ()中添加 异步

按我说的做

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}


class MyApp extends StatelessWidget {
var fsconnect = FirebaseFirestore.instance;


myget() async {
var d = await fsconnect.collection("students").get();
// print(d.docs[0].data());


for (var i in d.docs) {
print(i.data());
}
}


@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Firestore App'),
),
body: Column(
children: <Widget>[
RaisedButton(
child: Text('send data'),
onPressed: () {
fsconnect.collection("students").add({
'name': 'sarah',
'title': 'xyz',
'email': 'sarah@gmail.com',
});
print("send ..");
},
),
RaisedButton(
child: Text('get data'),
onPressed: () {
myget();
print("get data ...");
},
)
],
),
));
}
}

如果你正在启动一个 本能反应应用程序并且看到了这个问题,那么你必须遵循 firebase (当你安装 iOS/android 应用程序时)或者@React-本地 google auth android DevelopER _ ERROR Code 10问题中列出的所有指令

enter image description here

除了 以下是我对这个错误的看法,它可能由于多种原因而被抛出以外,答案可能已经在某个地方给出了:

  1. 默认应用程序是在另一个应用程序之后初始化的。正确的方法是先初始化默认应用程序,然后再初始化其他应用程序。
  2. 在默认应用程序初始化之前调用 firebase.apps.app()。这段代码基本上是返回默认的应用程序实例。因为它不存在,所以出现了错误。
  3. 最后,在应用程序初始化之前,你正在初始化其他的 Firebase 服务,比如 auth、 database、 firestore 等等。

我找到解决办法了!

遵循以下步骤:

Flutter Firebase 和 Android 问题-无法初始化。无法找到执行最新迁移指令的 google-services. json

然后,执行:

flutter build apk --debug
flutter build apk --profile
flutter build apk --release

然后,运行应用程序! 它为我工作!

我认为这个错误的到来是因为你使用的类组件在各自的反应平台,没有得到适当的配置。 因此,您可以在组件 WillMount ()中编写配置。

componetWillMount() {
const config = {
apiKey: “xxxxxxxxxxxxxxxxxxxxxxxx”,
authDomain: “auth-bdcdc.firebaseapp.com 20”,
databaseURL: “https://auth-bdcdc.firebaseio.com 7”,
projectId: “auth-bdcdc”,
storageBucket: “auth-bdcdc.appspot.com 2”,
messagingSenderId: “xxxxxxxxxx”
};

在 app.module.ts 中使用 Initialize 应用程序

import { environment } from 'src/environments/environment';
firebase.initializeApp(environment.firebase);

这将清除错误。
可以使用 firebase.database ()而不会出现任何错误

这个错误是因为您试图在 Firebase 函数成功初始化之前使用它

解决方案:

把你想调用的函数放在 setInterval 块中,这样只有在应用程序初始化后才能调用该函数:

 let isFirebaseAppDefined = false;
setInterval(() => {
if (!isFirebaseAppDefined) {
if (firebase.app()) {


// Function that needs to run after the initialisation comes here
// Example re-captcha verifier or other auth function


isFirebaseAppDefined = true;
}
}
}, 100);

在使用 iOS 时也出现了同样的错误。希望您已经使用 pods 安装了 Firebase。您需要执行以下操作。 打开 Xcode 并打开 Appgenerate.m 文件并导入

#import "FIRApp.h"

现在调用 did FinishLaunchingWithOptions 委托方法中的 configure 方法

  [FIRApp configure];

现在运行你的应用程序。它应该工作。这里是医生 链接

如果你是本地反应和为 IOS 开发,那么我认为你忘记了连接步骤的 Firebase 模块。

按照下面的步骤... !

打开 /ios/{projectName}/AppDelegate.m文件,并添加以下内容:

在文件的顶部,导入 Firebase SDK:

#import <Firebase.h>

在现有的 didFinishLaunchingWithOptions方法中,将以下内容添加到该方法的顶部:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Add this  --- \/
if ([FIRApp defaultApp] == nil) {
[FIRApp configure];
}
// Add me --- /\
// ...
}

另一个解决方案在这里。

使用 APP _ INITIALIZER

Https://angular.io/api/core/app_initializer

export function appInitializer() {
return () => firebase.initializeApp(firebaseConfig);
}


...
@NgModule({
...
providers: [{
provide: APP_INITIALIZER,
useFactory: () => appInitializer
multi: true
}]
})
export class AppModule {}

我也有同样的问题。当我尝试将我的 flutter web 应用添加到 firebase 时,我把 google 在设置过程中给我的脚本标签粘贴到 index.html 中。即使在我使用 main 方法中的以下代码行修改 main.dart 之后,这种方法仍然不起作用:

WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());

使用脚本的格式张贴在这里,我得到了它的工作: Https://firebase.flutter.dev/docs/installation/web

如果有其他人有同样的问题,并盲目地复制谷歌给你在 Firebase 安装脚本标签..。这对我有帮助。只要把它变成 FlutterFire 发布的格式。

当我更新 React Nativeversion 时,我在 ios 中得到了这个错误,在 method: didFinishLaunchingWithOptions from file: ios/{AppName}/AppDelegate.m中添加这个指令

   if ([FIRApp defaultApp] == nil) {
[FIRApp configure];
}

它应该是这样的: enter image description here

在我的情况下,解决方案是取代这一点

const firebaseConfig = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
};
const app = initializeApp(firebaseConfig);

到这里。

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.6.8/firebase-app.js";
firebase.initializeApp({
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
});

我希望这对你有用:)

如果使用的是 本土反应,则如果没有正确配置本机端,也可能发生此错误。

文档在此: https://rnfirebase.io/

仿生人

首先,下载 google-services.json文件并将其放置在项目中以下位置: /android/app/google-services.json

然后,添加谷歌服务插件作为依赖内部的 /android/build.gradle

buildscript {
dependencies {
// ... other dependencies
classpath 'com.google.gms:google-services:4.3.10'
// Add me --- /\
}
}

最后,通过在 /android/app/build.gradle中添加以下内容来执行插件

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // <- Add this line

IOS

首先,通过 xcode 将 GoogleService-Info.plist文件添加到项目中。确保它出现在构建阶段,这样您就知道它被添加到项目中,而不仅仅是文件夹。

然后,打开 /ios/{projectName}/AppDelegate.m文件,并添加以下内容:

在文件的顶部,导入 Firebase SDK:

#import <Firebase.h>

在现有的 didFinishLaunchingWithOptions 方法中,将以下内容添加到该方法的顶部:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Add me --- \/
[FIRApp configure];
// Add me --- /\
// ...
}

对我来说

getAuth()
getFirestore()

而不是通过应用程序,而是使用它像

const app = initializeApp(config);
const auth = getAuth(app);
const db = getFirestore(app);

第一步:

使用 npm

Npm install —— save@response-national-firebase/app

使用纱线

纱线 add@response-national-firebase/app

第二步: 在 https://console.firebase.google.com/中生成 Android 凭据 “ Android 软件包名称”必须与您的本地项目的软件包名称相匹配,这个名称可以在项目的/Android/app/src/main/AndroidManifest.xml 文件的清单标记中找到。

下载 google-services. json 文件并将其放在项目中的下列位置:/android/app/google-services. json。

第三步: 然后在/android/build.gradle 文件中添加 google-services 插件作为依赖项: Classspath‘ com.google.gms: google-services: 4.3.13’类路径‘ com.google.gms: google-services: 4.3.13’

最后,通过在/android/app/build.gradle 文件中添加以下内容来执行插件: Application plugin: ‘ com.android.application’应用插件: ‘ com.android.application’ Application plugin: ‘ com.google.gms.google-services’//<-添加这一行

就这样。

用这个: Https://github.com/abhi3700/my_learning_databases/tree/main/firebase#initialize-firestore

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


const serviceAccount = require("../../../helper/serviceAccountKey.json");


let db = null;


// initialize firebase
if (!fs.apps.length) {
fs.initializeApp({
credential: fs.credential.cert(serviceAccount),
// name: "zippy-mvp2",
});


db = fs.firestore();


// allow undefined values.
db.settings({
ignoreUndefinedProperties: true,
});
} else {
db = fs.app().firestore();
}