android - firebase云消息没有看到小米设备

标签 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')

最佳答案

有两种类型的 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了解更多详情。

关于android - firebase云消息没有看到小米设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947042/

相关文章:

java - 从 Android 中编码的 EditText 获取源 HTML

java - 如何显示非 Activity 类别的插页式广告?

firebase - 如何使用 vue 和 vuefire 加载 firebase 数据?

node.js - Yarn 把离线包存放在哪里?

javascript - Android 上 TextInput 的奇怪行为 react native

android - Android 10 上的 TelephonyManager 崩溃

android - 增加了minSdkVersion,怎么让用户知道?

firebase - 在Flutter中以表格形式查看FIrestore数据

php - 查找距离 MySQL 最近的地方

javascript - undefined 不是一个评估 _this.props.navigation React Native 的对象