FCM V1 通知不是从 Azure 通知中心传递的

问题描述 投票:0回答:3

我正在按照此 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 的值)

问题是:

  1. 从 Azure 门户中的“测试发送”发送通知时,通知未送达,我可以在“FCM v1 错误”指标下看到错误。

  2. 从代码(C# - Microsoft.Azure.NotificationHubs nuget)发送模板通知时,它显示相同的错误。

这里有一些跟踪 ID(我不知道如何使用它们来获取更多信息):

  • eba8824d-6625-46ca-aa4c-b89cf4fbf9a3
  • d1638928-dc27-49ee-a4ee-2ccc1451acb6
  • 58e2b6b4-1075-465a-9f17-1d6810e6d9b4
  • 0d62ae4c-495c-4da5-8bbe-ed1b43d00413

更多信息- 将通知中心升级到标准层后,我得到了此遥测详细信息 -

<?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"
    }
azure xamarin push-notification firebase-cloud-messaging azure-notificationhub
3个回答
2
投票

好吧,看起来一切都很好..除了我们忘记在 Google Cloud Console 上启用 Firebase Messageing API


0
投票

我的情况并非如此。 SendTemplateNotification 对我不起作用。


0
投票

我想我们也有同样的问题。我们使用模板。我们更改了对安装的调用以指定 FCMv1 作为平台,并且更改了模板。当检索安装时,我看到它确实已在NotificationHub上注册。

通过消息 REST API 发送模板消息时,我们使用

test
查询字符串来获取NotificationOutcome。在这个结果中,成功和失败的值始终为
0

这就像NotificationHub在搜索要向其发送模板消息的安装时没有“看到”FCMv1安装一样。

Google Firebase 已正确配置。当我们从NotificationHub向同一标签发送直接FCMv1消息时,NotificationHub确实显示Success: 1,并且通知实际上在设备上收到。当我们从NotificationHub接口向同一个标签发送模板消息时,它也显示0表示成功和失败。

© www.soinside.com 2019 - 2024. All rights reserved.