Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase Messaging on Android suddenly started crashing when message received

Currently using react native, react-native-firebase, and react-native-push-notification. Everything was fine until suddenly today firebase messaging started causing the app to crash. The error message is the following:

    Process: com.packagename, PID: 30087     java.lang.AbstractMethodError: abstract method "com.google.android.gms.tasks.Task com.google.firebase.iid.WithinAppServiceBinder$IntentHandler.zza(android.content.Intent)"         at com.google.firebase.iid.WithinAppServiceBinder.zza(com.google.firebase:firebase-iid@@20.2.2:9)         at com.google.firebase.iid.zzaw.zza(com.google.firebase:firebase-iid@@20.2.2:30)         at com.google.firebase.iid.zzaw.onServiceConnected(com.google.firebase:firebase-iid@@20.2.2:59)         at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2067)         at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2099)         at android.os.Handler.handleCallback(Handler.java:883)         at android.os.Handler.dispatchMessage(Handler.java:100)         at android.os.Looper.loop(Looper.java:237)         at android.app.ActivityThread.main(ActivityThread.java:8016)         at java.lang.reflect.Method.invoke(Native Method)         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076) 

The error occurs when a notification is received, but does not trigger a data message. In addition, the notification is received and processed before causing the crash.

I thought the error might have been caused by changing the react-native-firebase/app version, so I reverted my project on git to that of a previous, working version. However, I still get the same error after cleaning and rebuilding. It also occurs even if there are no notification listeners set up on the react native side, although I'm not sure what that entails for the actual native code. What could possibly be the problem? I'm using versions of react-native-firebase/messaging (7.1.5) and react-native-firebase/app (7.2.0) that were previously functional.

like image 285
tenkay Avatar asked Jul 07 '20 01:07

tenkay


People also ask

Is there a limit on Firebase messaging?

You can send up to 240 messages/minute and 5,000 messages/hour to a single device.

Is Firebase good for push notifications?

Firebase Cloud Messaging (FCM) provides a reliable and battery-efficient connection between your server and devices that allows you to deliver and receive messages and notifications on iOS, Android, and the web at no cost.


2 Answers

Edit 07/09/2020: We have released firebase-iid and firebase-messaging versions 20.2.3 with a fix for this issue, please upgrade to the latest versions.


[Firebaser here] It looks like yesterday's releases of firebase-messaging and firebase-iid contain a bug which can cause this crash. We are working hard on a fix.

For now the best thing to do is to use the versions released on June 18th: https://firebase.google.com/support/release-notes/android#2020-06-18

  • com.google.firebase:firebase-messaging:20.2.1
  • com.google.firebase:firebase-iid:20.2.1

We are working on a fix and hope to have a new release out soon. When we do I will update this answer and the release notes will be available here: https://firebase.google.com/support/release-notes/android

like image 52
Sam Stern Avatar answered Sep 28 '22 00:09

Sam Stern


We tried adding firebaseMessagingVersion = "20.2.1" into the ext section in the root project android/build.gradle which fixed it for us. We looked into the safeExtGet method and found that it would try to extract the top level variable from the root project file.

By doing it in this way we didn't need to touch the node modules.

ext {         googlePlayServicesVersion = "16.+"         firebaseVersion = "17.3.4"         firebaseMessagingVersion = "20.2.1"     } 
like image 28
Johan Ie Avatar answered Sep 28 '22 00:09

Johan Ie