Nativescript - 在此过程中未初始化 FirebaseApp
Nativescript - FirebaseApp is not initialized in this process
我真的很想解决这个问题。很长一段时间以来,我一直在努力解决这个问题,但就是无法正常工作。
我的目标是在我的 Nativescript-App 中使用 Firebase,它也使用 Angular 7,但每次我尝试 "begin" 使用 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 应用程序是在 "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:
...
这很有趣,因为上面写着 "already initialized",但紧接着它写着 "FirebaseApp is not initialized"。好吧,所以我决定删除 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,以防万一。
当我决定用 firebase.init-part
替换 FirebaseApp.initializeApp(environment.firebase)
时,它也会给出同样的错误。
我的 environment.ts 位于名为 environment 的文件夹中,它与 [=46= 位于同一目录中]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/
伙计们,我真的不知道更多了。我什至尝试了 Google 搜索的第二页。
如果您需要任何信息,请告诉我。
我的解决方案
不幸的是我不得不放弃这个项目并创建一个带有 angular-templates 的新项目。
我一定是在启用 mutliDex 时搞砸了,因为当时我很难启用它。
我的理论是,通过搞乱 multiDex 的激活,我可能会在 运行 tns run android
.
时创建我的应用程序构建的两个实例
所以,唯一的解决办法是重新开始,但至少 Firebase 初始化现在可以正常工作了!
我真的很想解决这个问题。很长一段时间以来,我一直在努力解决这个问题,但就是无法正常工作。
我的目标是在我的 Nativescript-App 中使用 Firebase,它也使用 Angular 7,但每次我尝试 "begin" 使用 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 应用程序是在 "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:
...
这很有趣,因为上面写着 "already initialized",但紧接着它写着 "FirebaseApp is not initialized"。好吧,所以我决定删除 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,以防万一。
当我决定用 firebase.init-part
替换 FirebaseApp.initializeApp(environment.firebase)
时,它也会给出同样的错误。
我的 environment.ts 位于名为 environment 的文件夹中,它与 [=46= 位于同一目录中]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/
伙计们,我真的不知道更多了。我什至尝试了 Google 搜索的第二页。 如果您需要任何信息,请告诉我。
我的解决方案 不幸的是我不得不放弃这个项目并创建一个带有 angular-templates 的新项目。 我一定是在启用 mutliDex 时搞砸了,因为当时我很难启用它。
我的理论是,通过搞乱 multiDex 的激活,我可能会在 运行 tns run android
.
所以,唯一的解决办法是重新开始,但至少 Firebase 初始化现在可以正常工作了!