【问题标题】:Ionic Capacitor firebase push notification, error:Default FirebaseApp is not initialized in this processIonic Capacitor firebase 推送通知,错误:此过程中未初始化默认 FirebaseApp
【发布时间】:2020-05-23 08:06:13
【问题描述】:

我是 Capacitor 的新手,正在将我的 Cordova 项目迁移到 Capacitor。

我试图让我的通知消息正常工作。因此我按照中所示的步骤 https://capacitor.ionicframework.com/docs/guides/push-notifications-firebase/

构建项目后,我将打开项目并启动 Android Studio。我进行了一次运行,应用程序开始下载到我的手机上,然后我运行它。

我在为我的手机注册通知消息时收到如下所示的错误消息。

我错过了一步吗?

google-services.json也放在Andriod-->App

谢谢

 E/Capacitor: Serious error executing plugin
    java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99)
        at com.getcapacitor.Bridge$1.run(Bridge.java:515)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:201)
        at android.os.HandlerThread.run(HandlerThread.java:65)
     Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.aardra.cloud. Make sure to call FirebaseApp.initializeApp(Context) first.
        at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@19.3.0:184)
        at com.google.firebase.messaging.FirebaseMessaging.getInstance(com.google.firebase:firebase-messaging@@20.1.2:1)
        at com.getcapacitor.plugin.PushNotifications.register(PushNotifications.java:82)
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99) 
        at com.getcapacitor.Bridge$1.run(Bridge.java:515) 
        at android.os.Handler.handleCallback(Handler.java:873) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.os.HandlerThread.run(HandlerThread.java:65) 
E/AndroidRuntime: FATAL EXCEPTION: CapacitorPlugins
    Process: com.aardra.cloud, PID: 749
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at com.getcapacitor.Bridge$1.run(Bridge.java:524)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:201)
        at android.os.HandlerThread.run(HandlerThread.java:65)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99)
        at com.getcapacitor.Bridge$1.run(Bridge.java:515)
        at android.os.Handler.handleCallback(Handler.java:873) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.os.HandlerThread.run(HandlerThread.java:65) 
     Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.aardra.cloud. Make sure to call FirebaseApp.initializeApp(Context) first.
        at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@19.3.0:184)
        at com.google.firebase.messaging.FirebaseMessaging.getInstance(com.google.firebase:firebase-messaging@@20.1.2:1)
        at com.getcapacitor.plugin.PushNotifications.register(PushNotifications.java:82)
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99) 
        at com.getcapacitor.Bridge$1.run(Bridge.java:515) 
        at android.os.Handler.handleCallback(Handler.java:873) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.os.HandlerThread.run(HandlerThread.java:65) 

【问题讨论】:

  • 似乎在使用appflow时,ios firebase文件没有正确放入项目中。
  • 你在使用 Appflow 吗?

标签: android firebase ionic-framework capacitor


【解决方案1】:

我遇到了同样的问题。就我而言,我忘记将 google-services.json 放在 android/app 文件夹中。

验证:

  1. google-services.json 位于 android/app 文件夹中,并且您的 Android 软件包名称应与您的电容器.config.json 文件中的 appId 匹配。 我们使用 com.mydomain.myappname 作为 Capacitor 应用 ID,因此我们将在此条目中使用它。
  2. capacitor.config.json 有 PushNotifications 设置:
    {
     ...
     "plugins": {
        "SplashScreen": {
         ...
        },
        "PushNotifications": {
            "presentationOptions": ["badge", "sound", "alert"]
        }
     },
     ...
    }

然后构建你的 js 项目并同步。

npx cap sync android
npx cap open android

并在模拟器中构建您的 Android 应用或测试。

【讨论】:

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