【问题标题】:Nativescript - FirebaseApp is not initialized in this processNativescript - 在此过程中未初始化 FirebaseApp
【发布时间】:2020-04-21 13:23:37
【问题描述】:

我真的对这个问题感到绝望。我试图解决这个问题已经很长时间了,但我就是无法让它发挥作用。

我的目标是在我的 Nativescript-App 中使用 Firebase,它也使用 Angular 7,但每次我尝试“开始”使用 firebase 时,都会收到以下错误:

Default FirebaseApp is not initialized in this process com.nativescript. Make sure to call FirebaseApp.initializeApp(Context) first.

我已经试过了。我跟着这个教程:https://github.com/EddyVerbruggen/nativescript-plugin-firebase

我的 Nativescript App 是在“Typescript”中构建的,所以我选择了 Typescript 方式。

由于我没有 app.js,因此我在 app.ts 中启动了 .init,如下所示:

import * as application from "tns-core-modules/application";
import * as FirebaseApp from "nativescript-plugin-firebase/app"
import { environment } from './environments/environment';


 FirebaseApp.initializeApp(environment.firebase);

 import * as firebase from "nativescript-plugin-firebase";

 firebase.init({
    // Optionally pass in properties for database, authentication and cloud messaging,
    // see their respective docs.
  }).then(
    () => {
      console.log("firebase.init done");
    },
    error => {
      console.log(`firebase.init error: ${error}`);
    }
  );

application.run({ moduleName: "app-root" }); 

当我尝试FirebaseApp.initializeApp(environment.firebase) 时,它崩溃并在日志中显示:

S: firebase.init error: Firebase already initialized
Successfully synced application com.nativescript. on device 97412f42.
System.err: An uncaught Exception occurred on "main" thread.
System.err: Unable to start activity ComponentInfo{com.nativescript./com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.nativescript.. Make sure to call FirebaseApp.initializeApp(Context) first.
System.err:
...

这很有趣,因为上面显示“已初始化”,但紧接着显示“FirebaseApp 未初始化”。好的,所以我决定删除firebase.init({...}),因为这可能是太多的初始化,但显然不是:

System.err: Unable to start activity ComponentInfo{com.nativescript./com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.nativescript. Make sure to call FirebaseApp.initializeApp(Context) first.
System.err:
...

别担心,我特意删除了 com.native.script.THEID,以防万一。

当我决定将 FirebaseApp.initializeApp(environment.firebase) 替换为 firebase.init-part 时,它也会出现同样的错误。

我的 environment.ts 位于一个名为 environment 的文件夹中,它与 app.ts(文件夹)位于同一目录中.

environment.ts 是这样的:

export const environment = {
    production: true,
    firebase: {
      apiKey: 'THE API KEY',
      authDomain: 'THE AUTH DOMAIN',
      databaseURL: 'THE DATABASE URL',
      projectId: 'THE PROJECT ID',
      storageBucket: 'THE STORAGE BUCKET',
      messagingSenderId: 'THE SENDER ID'
    },
  };

我已经从 Firebase 控制台(您设置应用的地方)下载了 google-services.json,并将其粘贴到 app/App_Resources/Android/

拜托各位,我真的不知道更多了。我什至尝试了谷歌搜索的第二页。 如果您需要任何信息,请告诉我。

【问题讨论】:

  • 为什么你有两个初始化调用? initializeApp 只是 init 的一个别名,你只需要使用你熟悉的那个即可。
  • 您好@Manoj,感谢您的评论!正如我在帖子中所说,我已经单独尝试了其中一个,但它仍然不起作用。我通过使用 angular-templates 创建一个新项目来修复它,不幸的是,当我激活 multiDex 时,我一定搞砸了一些非常糟糕的事情

标签: android firebase nativescript


【解决方案1】:

我的解决方案 不幸的是,我不得不放弃这个项目并使用 angular-templates 创建一个新项目。 我在启用 mutliDex 时一定搞砸了,因为当时我很难启用它。

我的理论是,通过搞乱 multiDex 的激活,我可能会在运行 tns run android 时创建两个应用构建实例。

所以,唯一的解决方案是重新开始,但至少 Firebase 初始化现在可以正常工作了!

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2021-01-30
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多