firebase / flutterfire

🔥 A collection of Firebase plugins for Flutter apps.
https://firebase.google.com/docs/flutter/setup
BSD 3-Clause "New" or "Revised" License
8.64k stars 3.96k forks source link

failed to find callback #2897

Closed sumanthkumarps closed 4 years ago

sumanthkumarps commented 4 years ago
E/FlutterFcmService( 2608): Fatal: failed to find callback
D/EGL_emulation( 2608): eglMakeCurrent: 0xdc81a300: ver 3 0 (tinfo 0xdc80f450)
E/flutter ( 2608): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: MissingPluginException(No implementation found for method configure on channel plugins.flutter.io/firebase_messaging)
E/flutter ( 2608): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:157:7)
E/flutter ( 2608): <asynchronous suspension>
E/flutter ( 2608): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
E/flutter ( 2608): #2      FirebaseMessaging.configure (package:firebase_messaging/firebase_messaging.dart:114:14)
E/flutter ( 2608): #3      _OnBoardingPageState.configureFirebase (package:teplay/onboarding/OnBoardingPage.dart:39:24)
E/flutter ( 2608): #4      _OnBoardingPageState.initState (package:teplay/onboarding/OnBoardingPage.dart:33:5)
E/flutter ( 2608): #5      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4649:58)
E/flutter ( 2608): #6      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4485:5)
E/flutter ( 2608): #7      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #8      Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #9      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5839:14)
E/flutter ( 2608): #10     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #11     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #12     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4536:16)
E/flutter ( 2608): #13     Element.rebuild (package:flutter/src/widgets/framework.dart:4227:5)
E/flutter ( 2608): #14     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4490:5)
E/flutter ( 2608): #15     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4485:5)
E/flutter ( 2608): #16     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #17     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #18     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5839:14)
E/flutter ( 2608): #19     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #20     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #21     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5839:14)
E/flutter ( 2608): #22     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #23     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4536:16)
E/flutter ( 2608): #25     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4684:11)
E/flutter ( 2608): #26     Element.rebuild (package:flutter/src/widgets/framework.dart:4227:5)
E/flutter ( 2608): #27     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4490:5)
E/flutter ( 2608): #28     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4675:11)
E/flutter ( 2608): #29     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4485:5)
E/flutter ( 2608): #30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #31     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #32     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5839:14)
E/flutter ( 2608): #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #35     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5839:14)
E/flutter ( 2608): #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3455:14)
E/flutter ( 2608): #37     Element.updateChild (package:flutter/src/widgets/framework.dart:3223:18)
E/flutter ( 2608): #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4536:16)
E/flutter ( 2608): #39     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4684:11)
E/flutter ( 2608): #40     Element.rebuild (package:flutter/src/widgets/framework.dart:4227:5)
E/flutter ( 2608): #41     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4490:5)
E/flutter ( 2608): #42     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4675:11)
E/flutter ( 2608): #43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4485:5)
E/flutter ( 2608): #44     El
TahaTesser commented 4 years ago

Hi @sumanthkumarps Please follow iOS Integration Also add

import UIKit
import Flutter
import Firebase

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }
    FirebaseApp.configure()
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

Please execute following from root of your ios folder and alsoe make sure you've firebase in your. AppDelegate pod init pod install pod update and try again

Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample Thank you

panchalAlpit commented 4 years ago

Hi @sumanthkumarps Please follow iOS Integration Also add

import UIKit
import Flutter
import Firebase

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }
    FirebaseApp.configure()
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

Please execute following from root of your ios folder and alsoe make sure you've firebase in your. AppDelegate pod init pod install pod update and try again

Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample Thank you

Is it mandatory to implement IOS integration for Android?

TahaTesser commented 4 years ago

Hi @sumanthkumarps It's my bad, i thought this was iOS, must have confused another issue with this one

Please follow Android Integration

and if you'r using kotlin this in your MainActivity class and also enable Multidex AndroidX Migration

import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
import io.flutter.view.FlutterMain

class MainActivity : FlutterActivity(), PluginRegistry.PluginRegistrantCallback {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
        FlutterMain.startInitialization(this)
    }

    override fun registerWith(registry: PluginRegistry?) {
        if (!registry!!.hasPlugin("io.flutter.plugins.firebasemessaging")) {
            FirebaseMessagingPlugin.registerWith(registry!!.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
        }
    }

}

Thank you

sumanthkumarps commented 4 years ago

Thanks for the input, it’s working fine