我正在按照此 Microsoft 指南 从 GCM/FCM 通知迁移到 FCM v1。
从指南中,我 -
1.在 Azure 通知中心配置 Firebase 服务帐户凭据
2.更新了后端和应用程序 (Xamarin),以便在安装和注册推送通知期间使用 FCM v1 平台 -
/* Installation */
var installation = new Installation()
{
InstallationId = "installation-guid",
PushChannel = "firebase-token",
Platform = NotificationPlatform.FcmV1
};
installation.Tags = ... Assign tags;
installation.Templates[key] = "fcm v1 template";
hubClient.CreateOrUpdateInstallationAsync(installation);
/* Update Tag Based On User Id */
await hubClient.PatchInstallationAsync(installationId, new[]
{
new PartialUpdateOperation
{
Operation = UpdateOperationType.Replace,
Path = "/tags",
Value = userId.ToNotificationTag()
}
});
3.验证设备是否确实在通知中心注册(通过从通知中心获取注册)
4.验证从 Firebase 控制台发送通知时是否已将通知传送到应用程序。 (使用 firebase 令牌(安装对象中 PushChannel 的值)
问题是:
这里有一些跟踪 ID(我不知道如何使用它们来获取更多信息):
更多信息- 将通知中心升级到标准层后,我得到了此遥测详细信息 -
<?xml version="1.0" encoding="utf-16"?>
<PnsFeedback xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<FeedbackTime>2024-04-18T16:20:35.1678121Z</FeedbackTime>
<NotificationSystemError>UnknownError</NotificationSystemError>
<Platform>fcmV1</Platform>
<PnsHandle>eJpiCAulSye7BfsmmqZ6Dl:xxxxxx</PnsHandle>
<RegistrationId>7159908837859365990-7306945109327663386-8</RegistrationId>
<NotificationId>NH-20240418162035079-5f4b5669ff814d269738156327a12cc3-08</NotificationId>
</PnsFeedback>
和同等注册 -
{
"eTag": "4",
"expirationTime": "2024-04-18T16:16:32.7765811Z",
"registrationId": "7159908837859365990-7306945109327663386-8",
"tags": "$InstallationId:{6966898c-0231-4a23-ac96-77456ad5cc13},userId:12041U",
"fcmV1RegistrationId": "eJpiCAulSye7BfsmmqZ6Dl:xxxxxx",
"bodyTemplate": {
"value": "{\"message\":{\"android\":{\"data\":{\"message\":\"$(messageParam)\",\"attachmentLink\":\"$(attachmentLinkParam)\",\"thumbnailLink\":\"$(thumbnailLinkParam)\",\"type\":\"$(typeParam)\",\"additionalData\":\"$(additionalDataParam)\",\"toId\":\"$(toIdParam)\",\"isPublic\":\"$(isPublicParam)\"}}}}"
},
"templateName": "genericMessage"
}
好吧,看起来一切都很好..除了我们忘记在 Google Cloud Console 上启用 Firebase Messageing API
我的情况并非如此。 SendTemplateNotification 对我不起作用。
我想我们也有同样的问题。我们使用模板。我们更改了对安装的调用以指定 FCMv1 作为平台,并且更改了模板。当检索安装时,我看到它确实已在NotificationHub上注册。
通过消息 REST API 发送模板消息时,我们使用
test
查询字符串来获取NotificationOutcome。在这个结果中,成功和失败的值始终为 0
。
这就像NotificationHub在搜索要向其发送模板消息的安装时没有“看到”FCMv1安装一样。
Google Firebase 已正确配置。当我们从NotificationHub向同一标签发送直接FCMv1消息时,NotificationHub确实显示Success: 1,并且通知实际上在设备上收到。当我们从NotificationHub接口向同一个标签发送模板消息时,它也显示0表示成功和失败。