当前位置: 首页 > 知识库问答 >
问题:

android应用程序中的Firebase云消息传递只用于通知而不用于数据消息

慕容博涛
2023-03-14
<service
     android:name=".util.MyFirebaseMessagingService"
     android:exported="false">
     <intent-filter>
           <action android:name="com.google.firebase.MESSAGING_EVENT" />
     </intent-filter>
</service>


class MyFirebaseMessagingService: FirebaseMessagingService()  {

    private val TAG = "FirebaseMessaging"

    override fun onNewToken(token: String) {
        super.onNewToken(token)
        Log.d(TAG, token)
    }

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)

        if (remoteMessage.notification != null) {
            Log.d(TAG, "Message Notification Body: " + remoteMessage.notification!!.body)
        }
    }
}
{
    "registration_ids": ["KEY_HERE"],
    "notification": {
        "title": "HIMAN",
        "body": "werwkejh"
    }
}
{
    "multicast_id": 863107467701827657,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "MESSAGE_ID"
        }
    ]
}
{
    "registration_ids": ["KEY_HERE"],
    "data":{
        "message": "hi!"
    }
}

它只是没有触发我需要的onmessageReceed。有人能帮忙吗?

共有1个答案

武睿
2023-03-14

如果您的通知包含“notification”:将显示通知,但当应用程序未运行时,onMessageReceived将不会调用。对于这种情况,您必须在“data”:字段中传递数据,并从响应中删除通知“:

你的反应一定是这样的

{
"to": "your device token",
 "data":{
   "name": "John",
    "message": "Hii! "
    }
 }

我也有同样的问题,这对我有效。

 类似资料:
  • 我想使用谷歌的Firebase为网络构建一个消息应用程序。在这个应用程序中,用户应该向/从其他用户发送和接收消息。我检查了谷歌的Firebase网站,但我迷路了。你能告诉我从哪里开始吗?你能给我看任何与Firebase网络消息相关的教程或类似的东西吗?我欢迎任何建议。谢谢。

  • 我正在开发Android/iOS应用程序使用离子框架(网络技术),我想添加推通知与新的firebase功能FCM的帮助。 null 这是否意味着我可以在Android/iOS的ionic应用程序中使用它,因为应用程序是使用Cordova构建的?

  • 我最近将我的iOS应用从一个开发人员帐户转移到另一个开发人员帐户,现在我无法从Firebase云消息发送推送通知到我的应用。我尝试了以下方法: null 很明显,FCM代币已经更新,问题在于我在苹果方面遗漏了/忘记了做什么,以允许FCM与APN对话,但我无法找出我做错了什么。有什么想法吗?

  • 我正在使用FCM进行通知。FCM在从Firebase数据库创建数据时被触发。我收到了第一条信息。在此之后,不会接收到其他连续的消息。我在本地环境下运行这个。问题是由于以下消息“未配置计费帐户。外部网络无法访问,配额受到严重限制。配置计费帐户以消除这些限制”或任何其他问题造成的。我是否需要进入接收消息的计费计划。在测试环境中工作,这是不转移到计费计划的原因。如果问题与计费计划无关,可以有人指出代码的

  • 我正在尝试开发一个应用程序,其中服务器必须每5秒向运行该应用程序的所有android设备发送通知。我决定使用(谷歌)Firebse云消息发送通知,所以我首先尝试了指南的示例项目 https://firebase.google.com/docs/notifications/android/console-audience 但我不能让它工作。我遵守了所有的指示。我已经发布了我使用的代码。我也做了档案-

  • 可以使用第三方服务发送推送通知而不依赖谷歌的Firebase云消息(FCM)吗? 如果应用程序默认不包含Firebase包,那么创建/使用自定义框架是否具有与Firebase相似的功能集?或者Firebase是否以某种方式集成在Android操作系统中,而这种方式是从应用程序外部进行的?