Flutter Firebase unable to understand stack trace

Viewed 628

I am unable to understand this stack trace and why it arising. From what I can understand it is something to do with firebase messaging.

E/AndroidRuntime(26033): java.lang.AssertionError
E/AndroidRuntime(26033):    at io.flutter.plugins.firebase.messaging.FlutterFirebasePermissionManager.onRequestPermissionsResult(FlutterFirebasePermissionManager.java:33)
E/AndroidRuntime(26033):    at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:777)
E/AndroidRuntime(26033):    at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:409)
E/AndroidRuntime(26033):    at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:752)
E/AndroidRuntime(26033):    at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:748)
E/AndroidRuntime(26033):    at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8421)
E/AndroidRuntime(26033):    at android.app.Activity.dispatchActivityResult(Activity.java:8266)
E/AndroidRuntime(26033):    at android.app.ActivityThread.deliverResults(ActivityThread.java:4931)
E/AndroidRuntime(26033):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4979)
E/AndroidRuntime(26033):    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
E/AndroidRuntime(26033):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(26033):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(26033):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
E/AndroidRuntime(26033):    at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(26033):    at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(26033):    at android.app.ActivityThread.main(ActivityThread.java:7562)
E/AndroidRuntime(26033):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(26033):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E/AndroidRuntime(26033):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
I/Process (26033): Sending signal. PID: 26033 SIG: 9
Lost connection to device.

But as per documentation, my pre configuration for handling permission for both firebase and notification are correct.

This is what my main looks like,

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  FirebaseMessaging messaging = FirebaseMessaging.instance;

  NotificationSettings settings = await messaging.requestPermission(
    alert: true,
    announcement: false,
    badge: true,
    carPlay: false,
    criticalAlert: false,
    provisional: false,
    sound: true,
  );

  print('User granted permission: ${settings.authorizationStatus}');


  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

  await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
      alert: true, badge: true, sound: true);

  DatabaseBinding().dependencies();

  runApp(MyApp());
}

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
}

And below I am handling permissions in during my policy screen,

Map<Permission, PermissionStatus> statuses = await [
      Permission.storage,
      Permission.notification,
      Permission.camera
    ].request();

    if (!statuses.containsValue(PermissionStatus.denied)) {
      showGeneralDialog(
          context: context,
          useRootNavigator: false,......so_on

Please let me know, what exactly the stack trace says and if I am missing something please do explain.

1 Answers

The issue seems like coming from update 13.0.0 - Inbuilt notification permission handling function

FlutterFire issue#9430

Please follow above link for further details

Related