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】:您能否尝试在您的通知负载中添加 priority 和 content_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 推送通知