我正在使用FCM为android通知编写服务器端代码。
因此,代码将通知正确发送到主题,而不是特定设备的注册令牌。所以代码在这种情况下工作正常-
info.put("to", "topics/xyz");
info.put("title", "Hello 1");
info.put("body", "Hi");
但对于第二种情况——
info.put("to", DeviceIdKey.trim()); //device registration token
info.put("title", "Hello 1");
info.put("body", "Hi");
它给了,
输出:
{
"multicast_id": 1XXXXXXX01820YYYY2,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "MismatchSenderId"
}
]
}
重要提示 - 我拥有的所有Android/IOS设备的注册令牌都是由GCM生成的2年历史。谢谢!
如果您的目标令牌未与发送消息的项目相关联,则会发生MismatchSenderId
错误(正如我在此处和此处的答案中提到的(。这并不意味着令牌已过期,如果是,您将收到NotRegistered
错误。
一般来说,GCM 令牌应该仍然与 FCM 兼容(请参阅我的回答 这里(,只要发送方与令牌相关联,它们仍然可以接收消息(如果您只是将项目导入 Firebase 控制台,那么应该没问题(。