美文网首页
Flutter接入Firebase推送

Flutter接入Firebase推送

作者: Flonger | 来源:发表于2021-04-14 14:16 被阅读0次
    其实在网上也能搜到一些教程,但是不是讲的不清楚,就是版本太老,此次使用的Flutter版本是2.0.0,
    理论上Flutter版本大于1.12皆适用。
    本文大部分按照官方Firebase接入方式,主要做了cloud message,其他插件原理类似。
    
    注意:因项目问题,本文只描述了Android端的接入(后期有空会增加iOS端的接入)

    官方文档链接

    1.引入firebase_core包

    1)、在pubspec.yaml文件中添加firebase_core的引入(此时最新的)

        firebase_core: ^1.0.3
    

    执行

        flutter pub get
    

    2)、在Firebase 中创建新项目,并按提示添加bundleId与SHA-1值(SHA-1值后面做推送测试用),然后下载生成的google-services.json文件,并将其放置在[项目]/android/app/中。

    3)、安装Firebase配置文件

    首先,在android/build.gradle中添加google-services的支持:

    buildscript {
      dependencies {
        // ... other dependencies
        classpath 'com.google.gms:google-services:4.3.3'
      }
    }
    

    接着在/android/app/build.gradle中的apply plugin: 'com.android.application'紧跟着下方添加:

    apply plugin: 'com.google.gms.google-services'
    

    4)、编译运行项目

    添加以下测试是否报错

    await Firebase.initializeApp();
    

    example:

    void main() {
      //statusBar设置为透明,去除半透明遮罩
      WidgetsFlutterBinding.ensureInitialized();
    
      initFirebase();
    
    }
    void initFirebase() async{
      await Firebase.initializeApp();//初始化Firebase组件
      initApp();//调用UI逻辑
    }
    

    2.引入firebase_messaging包

    参考FirebaseMessage接入

    1)、在pubspec.yaml添加最新版本

    firebase_messaging: ^9.1.1 
    

    执行

        flutter pub get
    

    2)、此时注意官方提醒,Flutter版本大于1.12的话那就什么配置也无需操作,因急于2.0版本,因此小于1.12的情况不做讨论

    If you are using Flutter Android Embedding V2 (Flutter Version >= 1.12) then no additional integration steps are required for Android.
    

    3)、初始化firebase_message(注意:调用前必须先初始化firebase_core)

    void initFireMessage() async{
        FirebaseMessaging messaging = FirebaseMessaging.instance;
      }
    

    4)、获取token绑定(如果能获取到token证明接入成功)

    FirebaseMessaging.instance.getToken().then((value){
          print('token==='+value);
        });
    

    5)、监听消息

        ///应用启动时的消息提示
        FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message){
          if (message != null){
            print(message.data.toString());
          }
        });
    
        ///应用前台收到消息红点提示或跳转
        FirebaseMessaging.onMessage.listen((RemoteMessage message) { 
          RemoteNotification notification = message.notification;
          ///消息操作
        });
    
        ///通知栏消息点击进入消息详情
        FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
              
        
            });
    

    在程序入口处添加以下代码:

        ///后台收消息启动给红点提示
        Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
          await Firebase.initializeApp();
          print("Handling a background message: ${message.messageId}");
        }
        void main() {
          WidgetsFlutterBinding.ensureInitialized();
          initFirebase();
        }
        void initFirebase() async{
          await Firebase.initializeApp();
          FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
          initApp();///程序入口
        }
    
    以上就是简单的步骤;接着就可以去Firebase后台 中的Cloud Messaging中测试发布消息。
    具体消息处理按自己项目要求出处理。

    相关文章

      网友评论

          本文标题:Flutter接入Firebase推送

          本文链接:https://www.haomeiwen.com/subject/ehgklltx.html