firebase云消息传递没有看到小米设备

时间:2019-09-15 18:25:59

标签: android firebase react-native firebase-cloud-messaging react-native-firebase

我正在构建一个React Native应用。我想从Firebase发送云消息,但不能。我准备了项目并安装在我的设备上。其中之一是三星,另一人是小米。当我发送通知时,可以在三星上看到,但在小米上看不到。我也可以使用fcmToken发送通知我的虚拟android设备。您要如何解决该问题?

firebase云消息控制台:https://pasteboard.co/IxyD0p3.png

System:

OS: Windows 10

CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz

Memory: 1.46 GB / 7.89 GB

Binaries:

Node: 10.15.3 - C:\Program Files\nodejs\node.EXE

npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD

IDEs:

Android Studio: Version 3.3.0.0 AI-182.5107.16.33.5314842

react-native-cli: 2.0.1

react-native: 0.60.5


app/build gradle dependencies
implementation "com.google.android.gms:play-services-base:16.0.0"
    implementation 'com.google.android.gms:play-services-gcm:16.0.0'
    implementation "com.google.firebase:firebase-core:16.0.9"
    implementation "com.google.firebase:firebase-messaging:19.0.0"
    implementation 'com.google.firebase:firebase-analytics:17.2.0'
    implementation 'me.leolin:ShortcutBadger:1.1.21@aar'

/build gradle
classpath("com.android.tools.build:gradle:3.4.1")
        classpath('com.google.gms:google-services:4.3.2')

1 个答案:

答案 0 :(得分:1)

FCM通知有两种类型:通知消息数据消息

通知消息如下:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

并触发FirebaseMessagingService的方法OnMessageReceaved()。 许多设备(尤其是华为和小米)都竭尽全力杀死后台服务,以防止电池耗尽。因此,FirebaseMessagingService并不是处理通知的最佳方法。

第二种类型是
数据消息:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

此类型由系统托盘处理,因此您无需运行任何服务即可获取通知。它更方便的方法,但据我所知,它不能通过控制台实现。

您可能需要服务器API来发送数据消息。

阅读this了解更多详细信息。