firebase - flutter - firebase 消息未显示在手机中

标签 firebase dart flutter firebase-cloud-messaging

我尝试使用 flutter 为我的移动应用程序设置推送通知 firebase messaging .

我做了以下事情:

  1. 设置火力基地
  2. 下载 google-service.json 到 android/app 文件夹
  3. 在主屏幕上初始化 firebase 消息传递

但是,当我尝试从 firebase 控制台发送消息时,我的手机没有显示通知

通过调试我可以看到我的手机收到推送通知:

I/flutter (17004): on message {notification: {body: message 18, title: test 18}, data: {}}
I/flutter (17004): on message {notification: {body: message 19, title: test 19}, data: {}}
I/flutter (17004): on message {notification: {body: message 20, title: test 20}, data: {}}

但是在我的手机上没有任何显示。

我在主屏幕上的 flutter 代码:

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {     


FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
    
      @override
        void initState() {
          // TODO: implement initState
          super.initState();
          
          _firebaseMessaging.configure(
            onMessage: (Map<String, dynamic> message) {
              print('on message $message');
              //_showItemDialog(message);
            },
            onResume: (Map<String, dynamic> message) {
              print('on resume $message');
              //_showItemDialog(message);
            },
            onLaunch: (Map<String, dynamic> message) {
              print('on launch $message');
              //_showItemDialog(message);
            },
          );
          _firebaseMessaging.requestNotificationPermissions(
              const IosNotificationSettings(sound: true, badge: true, alert: true));
              _firebaseMessaging.getToken().then((token){
                print('>>>token='+token);
          });
        }

 ...

}

我尝试通过 postman 使用 FCM API 发送消息,但结果相同(在调试控制台中获取消息,但在手机中没有)

知道怎么解决吗?

最佳答案

补充评论中提到的内容,Firebase Cloud Messaging Android SDK 不会在通知托盘上显示消息 if the app is running on the foreground .尽管 FCM SDK 仍然能够通过 onMessage 事件接收负载,如日志中所示。

如果您仍想在应用程序可见时显示通知,您可以处理 onMessage 事件并使用 flutter_local_notificaions 显示负载。插入。你可以查看这个documentation关于如何为较新版本的 firebase_messaging 处理此用例。

关于firebase - flutter - firebase 消息未显示在手机中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962946/

相关文章:

javascript - 在 Firebase 中查询数据时是否还有像 ~ 这样的运算符

java - 如何在 Query OnCompleteListener 之外使用此变量(变量在 OnCreate 之外定义)?

flutter - 我可以在flutter的** noSuchMethod()**内部使用什么参数来处理空快照数据?

android - flutter 驱动程序 : Use Android back button

dart - Flutter Hot Reload 不重新加载/刷新 Assets

firebase - 在空方法上调用了 '[]'方法。接收方:null尝试调用:[] (“color”)

ios - swift Firebase 删除观察者

android - 如何检查电子邮件或手机是否已在 Firebase 中注册

flutter - 如何创建扩展密封类的方法的模拟?

socket.io - 将 Flutter 应用程序连接到 socket.io 服务器