Firebase 云消息未在响应中收到 multicast_id

Posted

技术标签:

【中文标题】Firebase 云消息未在响应中收到 multicast_id【英文标题】:Firebase Cloud Message not multicast_id received in response 【发布时间】:2017-08-24 07:48:34 【问题描述】:

我使用 php 在我的服务器中使用此功能将通知发送到 FCM:

function sendGCM($ch1,$ch2, $message) 

    $url = 'https://fcm.googleapis.com/fcm/send';

    $fields = array (
            'to' => $ch1
            ,
            'data' => array (
                    "message" => $message
            )
    );
    $fields = json_encode ( $fields );

    $headers = array (
            'Authorization: key=' . $appID,
            'Content-Type: application/json'
    );

    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_POST, true );
    curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );

    $result = curl_exec ( $ch );

    curl_close ( $ch );
    echo $result;

回复是这个"message_id":9191006033691432523。在文档中,https://firebase.google.com/docs/cloud-messaging/http-server-refmulticast_id、success、failure 参数在响应中是必需的,但是。

这是什么原因?

【问题讨论】:

multicast id in firebase cloud messaging service的可能重复 【参考方案1】:

您正在向$ch1 主题指定的消息发送消息,如果我理解没问题,而是通过它们的registrationIds 发送给多个设备。

所以你收到了Topic message HTTP response body (JSON)(表 6) 而不是 Downstream HTTP 消息

【讨论】:

【参考方案2】:

根据我从 FCM 了解到的情况,您的问题是,只有当您向唯一设备发送通知而不是主题通知时,您才会在响应中获得 multicast_id

【讨论】:

以上是关于Firebase 云消息未在响应中收到 multicast_id的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息传递消息日志

带有 Firebase 云消息传递的 Flutter 2.0:onMessage 未在 Android 上调用

Firebase 云消息传递未在 iOS 14 上提供推送通知

批量 Firebase 云消息传递的限制

FCM 检测 IOS 上的应用程序卸载(firebase 云消息推送通知)

Web 应用程序中未收到 Firebase 云消息传递通知