错误:未创建Firebase应用程序'[DEFAULT]' - 调用Firebase App.initializeApp()

Sam*_*bin 23 javascript node.js ios firebase firebase-realtime-database

我有一个firebase数据库链接到两个应用程序,一个是iOS应用程序,另一个是在node.js中编码的Web应用程序,这是一种将数据设置到数据库的基本算法.当我运行算法时,我遇到了 -

错误:未创建Firebase应用程序'[DEFAULT]' - 调用Firebase App.initializeApp(). 在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上的Object.c [as database](/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)处于Module.runMain的Function.Module._load(module.js:438:3)处(module.js:604) :10)在启动时运行(bootstrap_node.js:394:7)(bootstrap_node.js:149:9)at bootstrap_node.js:509:3 dd-mac:NODE dd $

有人可以帮忙吗?

pro*_*tds 27

如果您使用的是React Native,如果您没有正确配置本机端,也可能会发生此错误。

此处的文档:https: //rnfirebase.io/

安卓

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

然后,将 google-services 插件添加为您的/android/build.gradle

buildscript {
  dependencies {
    // ... other dependencies
    classpath 'com.google.gms:google-services:4.3.10'
    // Add me --- /\
  }
}
Run Code Online (Sandbox Code Playgroud)

最后,通过将以下内容添加到您的文件中来执行插件/android/app/build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // <- Add this line
Run Code Online (Sandbox Code Playgroud)

iOS系统

首先,GoogleService-Info.plist通过 xcode 将文件添加到项目中。确保它在构建阶段显示,以便您知道它已添加到项目中而不仅仅是文件夹中。

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

在文件顶部,导入 Firebase SDK:

#import <Firebase.h>
Run Code Online (Sandbox Code Playgroud)

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

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


Ron*_*ton 17

您可能firebase在应用程序初始化之前调用.所有这些都需要以firebase.一定要来后, .initializeApp();

firebase.initializeApp(config);
var db = firebase.firestore();
Run Code Online (Sandbox Code Playgroud)

  • 这是我的问题,但这不是因为代码的逐行顺序,而是因为我的导入顺序。我在导入使用Firebase的代码之前对其进行了初始化。 (3认同)

小智 9

如果你使用 Dart 和 Flutter

  1. 将 firebase_core 依赖项添加到 pubspac.ymal。
  2. 转到 main.dart
  3. 导入'包: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 ...");
            },
          )
        ],
      ),
    ));
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 7

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

AngularFireModule.initializeApp(firebaseConfig, 'reservas')
Run Code Online (Sandbox Code Playgroud)

如果我删除第二个参数它工作正常:

AngularFireModule.initializeApp(firebaseConfig)
Run Code Online (Sandbox Code Playgroud)


Cod*_*Spy 7

完整的教程链接

在@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 {}
Run Code Online (Sandbox Code Playgroud)

  • 与图书馆无关的问题不应该用图书馆特定的答案来回答。 (18认同)
  • @mesqueeb这可能是一个仅在角度中发生的错误,因此最好回答特定于语言的问题。 (3认同)

Lin*_*son 5

我有以下火力地堡的在网上找到向导类似的问题在这里.

标题为"初始化多个应用"的部分具有误导性,因为此标题下的第一个示例实际演示了如何初始化单个默认应用.这是例子:

// 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();
Run Code Online (Sandbox Code Playgroud)

如果要从以前的2.x SDK迁移,则必须更新访问数据库的方式,如上所示,否则您将收到No Firebase App '[DEFAULT]'错误.

Google有以下更好的文档:

  1. INITIALIZE: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


Teo*_*ahi 5

这可能不是最好的答案,但是,我不得不使用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);
            });
    }
Run Code Online (Sandbox Code Playgroud)