Google Firebase 通知无法订阅主题

Posted

技术标签:

【中文标题】Google Firebase 通知无法订阅主题【英文标题】:Google Firebase notifications can't subscribe topics 【发布时间】:2016-08-30 09:16:36 【问题描述】:

我有一个新的 Firebase 应用。目的是从 php 服务器向 ios 设备发送主题通知。

我已经成功测试了从服务器发送通知到特定设备 ID 的所有内容。

但是,主题拒绝表现得很好。

从 PHP 方面:

function call_firebase_notification ($signal) 
    $to = "/topics/demo";
    $title = "php function test real";
    $body = "php function test real body";
    $payload = json_encode(array(
                    "to" => $to ,
                    "notification" => array(
                      "title" => $title,
                      "body" => $body
                    )
                ));
    $headers = array(
        "Authorization: key=AIzaSyBr0G...Euxr5x4_0",
        "Content-Type: application/json",
        "Content-Length: ". strlen($payload)
        );
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);    
    $return = curl_exec($ch); 

    curl_close($ch);

    return $return;

$return = call_firebase_notification("test");
var_dump($return);

我得到了最肯定的结果:string(34) ""message_id":9067338503195970026"

从 iOS 端:

[[FIRMessaging messaging] subscribeToTopic:@"/topics/demo"];

我现在的同案犯也说订阅时得到了积极的结果。

但是没有通知到达(再次注意:发送到他的 id 时成功发送通知)并且尝试从 firebase 控制台发送通知时没有主题出现。

编辑: (给自己和世界的注释)

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

除非绝对必要或无聊,否则永远不要使用这些,这是一个演示 sn-p,所以我并不关心,但通常你应该更新你的 ssl 证书

【问题讨论】:

【参考方案1】:

您能否尝试在您的通知负载中添加 prioritycontent_available 参数。


  "to": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
  "notification": 
     "title": "test",
     "body": "my message"
  ,
  "priority": "high",
  "content_available": true

我还注意到昨天 Firebase Status Dashboard 在 Firebase Cloud Messaging 中出现了服务中断。

【讨论】:

感谢亲爱的朋友的回答,但他们似乎没有工作 虽然它们在这方面没有帮助,但它们最终还是很有用的,因为没有这些通知只能与前面的应用程序一起使用【参考方案2】:

其实答案很简单:时间。 就我而言,大约是 2 天,但在那之后,主题通知随机正常工作。

【讨论】:

以上是关于Google Firebase 通知无法订阅主题的主要内容,如果未能解决你的问题,请参考以下文章

您如何向从应用程序本身订阅主题的用户发送 Firebase 推送通知

向订阅主题的所有用户推送通知,使用 FCM Firebase 的登录用户除外

向未订阅某个主题的多个设备发送通知

订阅和取消订阅主题 - firebase

Firebase 消息 - 无法接收来自订阅的通知

在 iOS 上接收来自 firebase 的通知的奇怪行为