最近我问了一个关于使用GCM 发送推送通知的问题:向Android发送推送通知.现在有了FCM,我想知道它与服务器端开发有多么不同.明智的编码,它们是一样的吗?在哪里可以找到显示从服务器向Android设备发送推送通知的示例FCM代码?
我是否需要下载任何JAR库以使用Java代码向FCM发送通知?向Android发送推送通知中的示例代码显示使用GCM发送推送通知,并且需要服务器端GCM JAR文件.
但是,另一个例子在https://www.quora.com/How-do-I-make-a-post-request-to-a-GCM-server-in-Java-to-push-a-notification-to -the-client-app显示使用GCM发送推送通知,并且不需要服务器端GCM JAR文件,因为它只是通过HTTP连接发送.FCM可以使用相同的代码吗?使用的网址是" https://android.googleapis.com/gcm/send ".什么是FCM的等效URL?
提前致谢.
我的Android客户端应用程序安装在多个设备上.我还有我的服务器应用程序,向这些应用程序发送消息.问题是有些设备接收消息而其他设备没有.将消息发送到这些设备时,我收到错误" MismatchSenderId ".
我把问题分开了,所以我打开firebase控制台并向我的应用程序发送通知(我为每个应用程序都有令牌).因此,使用控制台应用程序,我在使用我的服务器的相同设备上收到错误.但正如我所说,每个设备都使用相同的应用程序.
任何帮助的原因?
我正在使用FCM编写用于 android 通知的服务器端代码。
因此,代码将通知正确发送到主题,但没有发送到特定设备的注册令牌。 所以代码对于这种情况工作得很好 -
info.put("to", "topics/xyz");
info.put("title", "Hello 1");
info.put("body", "Hi");
Run Code Online (Sandbox Code Playgroud)
但对于第二种情况——
info.put("to", DeviceIdKey.trim()); //device registration token
info.put("title", "Hello 1");
info.put("body", "Hi");
Run Code Online (Sandbox Code Playgroud)
它给,
输出:
{
"multicast_id": 1XXXXXXX01820YYYY2,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}
Run Code Online (Sandbox Code Playgroud)
重要信息- 我拥有的所有 Android/IOS 设备的注册令牌都是由 GCM 生成的,已有 2 年历史。谢谢!
android push-notification ios firebase firebase-cloud-messaging