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

时间:2016-11-12 13:07:46

标签: javascript ios node.js 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)       at 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)       在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 $

有人可以帮忙吗?

16 个答案:

答案 0 :(得分:12)

您可能在应用初始化之前调用firebase。拨打firebase.的所有电话必须在 .initializeApp();

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

答案 1 :(得分:6)

在main()中添加 async

并等待

按照我的代码

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 ...");
            },
          )
        ],
      ),
    ));
  }
}

答案 2 :(得分:5)

在Firebase的在线指南here之后,我遇到了类似的问题。

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

// 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. INITIALIZE:https://firebase.google.com/docs/database/admin/start

  2. SAVE:https://firebase.google.com/docs/database/admin/save-data

  3. RETRIEVE: https://firebase.google.com/docs/database/admin/retrieve-data

答案 3 :(得分:3)

这可能不是最佳答案,但我必须使用admin和firebase初始化应用程序,如下所示。我也使用管理员自己的目的和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);
            });
    }

答案 4 :(得分:2)

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

AngularFireModule.initializeApp(firebaseConfig, 'reservas')

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

AngularFireModule.initializeApp(firebaseConfig)

答案 5 :(得分:1)

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

来源link

答案 6 :(得分:0)

你在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 :(得分:0)

网络混乱

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

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>

答案 8 :(得分:0)

如果您要启动一个 react-native 应用程序并发现此问题,则必须遵循firebase中列出的所有说明(在设置iOS / android应用程序时)或@ { {3}}问题

React-native google auth android DEVELOPER_ERROR Code 10

答案 9 :(得分:0)

答案可能已经给出了,但是我对这个错误的看法是出于多种原因

  1. 默认应用在另一个之后被初始化。正确的方法是先初始化默认应用,然后再初始化其余应用。
  2. 在默认应用初始化之前,将调用
  3. firebase.apps.app()。这段代码基本上是返回默认的应用实例。由于它不存在,因此会出现错误。
  4. 最后,您要在应用初始化之前初始化其他Firebase服务,例如auth,数据库,firestore等。

答案 10 :(得分:0)

我认为出现此错误是因为您在未获得正确配置的相应 React 平台中使用了类组件。 所以你在 componentWillMount() 中编写配置。

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

答案 11 :(得分:0)

在 app.module.ts 中使用 Initialize app

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

这将清除错误。
您可以毫无错误地使用 firebase.database()

答案 12 :(得分:0)

此错误是因为您在成功初始化之前尝试使用 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);

答案 13 :(得分:0)

在使用 iOS 时遇到相同的错误。希望您已经使用 pod 安装了 Firebase。您需要执行以下操作。 打开 Xcode 并打开 AppDelegate.m 文件并导入

#import "FIRApp.h"

现在在 didFinishLaunchingWithOptions 委托方法中调用 configure 方法

  [FIRApp configure];

现在运行您的应用。它应该工作。这是文档 link

答案 14 :(得分:0)

如果您正在使用 React Native 并为 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 --- /\
  // ...
}

答案 15 :(得分:-1)

我找到了解决方案!

请按照以下步骤操作:

Flutter Firebase and Android issue - unable to Initialise. Cannot find google-services.json with latest migration instructions executed

之后,执行:

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

然后,运行应用程序!它对我有用!