Nativescript - FirebaseApp не инициализируется в этом процессе - PullRequest
0 голосов
/ 21 апреля 2020

Я действительно отчаянно нуждаюсь в этой проблеме. Я пытаюсь решить эту проблему уже долгое время, но просто не могу заставить ее работать.

Моя цель - использовать Firebase в моем приложении Nativescript, которое также использует 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 встроено в "Typescript", поэтому я выбираю способ Typescript.

Так как у меня нет app. js, я запустил .init в app.ts примерно так:

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({...}), потому что, возможно, это слишком много 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, он также выдает ту же ошибку.

My 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'
    },
  };

Я уже скачал google-services. json из консоли Firebase (где вы настраивали свое приложение) и вставил его в app / App_Resources / Android /

Пожалуйста, ребята, я действительно не знаю больше. Я даже попробовал вторую страницу поиска Google. Если вам нужна информация, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 22 апреля 2020

МОЕ РЕШЕНИЕ К сожалению, мне пришлось отказаться от этого проекта и создать новый с шаблонами angular. Должно быть, я что-то напутал, когда включал mutliDex, так как тогда у меня были проблемы с его включением.

Моя теория состоит в том, что, путая активацию multiDex, я, вероятно, создаю два экземпляра сборки своего приложения при запуске tns run android.

Итак, единственным решением было начать все заново, но по крайней мере инициализация Firebase теперь работает просто отлично!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...