首页 > 解决方案 > Flutter - 在 Firebase 消息传递中获取数组

问题描述

在 Flutter 中,我尝试像这样在新的firebase_messaging 10.0.0中获取数组

import 'dart:io';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:pushtest/functions/alert_messages.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:pushtest/constant/constant.dart' as Constants;

class PushNotifications {
  FirebaseMessaging firebaseMessaging;

  initNotifications() {
    firebaseMessaging.requestPermission();
    firebaseMessaging.getToken().then((token) async {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      prefs.setString('firebaseToken', token);
    });
  }

  configuration(scaffold, location) {
    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      var noti;
      message as Map;
      if (Platform.isIOS) {
        noti = message['message'];
      } else {
        noti = message['data']['message'];
      }
      if (location == 'navigation') {
        Messages.alert(scaffold.currentContext, noti);
      } else {
        Constants.message = noti;
      }
      return null;
    });

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      var noti;
      if (Platform.isIOS) {
        noti = message['message'];
      } else {
        noti = message['data']['message'];
      }
      Constants.message = noti;
      return null;
    });
  }
}

问题:当我尝试做

 noti = message['message'];

返回

未为“RemoteMessage”类型定义运算符“[]”。尝试定义运算符'[]'。

那么使用监听函数获取数组元素的正确方法是什么?

标签: firebaseflutter

解决方案


如果您要发送数据消息,请执行以下操作:

noti = message.data['message'];

推荐阅读