分享方式:


使用 REST API 和 Azure 入口網站 進行 Google Firebase 雲端傳訊移轉

本文說明 Azure 通知中樞與 Firebase 雲端通訊 (FCM) v1 整合的核心功能。 提醒您,Google 將於 2024 年 6 月 20 日停止支援 FCM 舊版 HTTP,因此您必須先將應用程式和通知承載移轉至新的格式,然後才行。 到 2024 年 3 月 1 日,所有上線方法都已準備好進行移轉。

重要

自 2024 年 6 月起,FCM 舊版 API 將不再受到支援,且將會淘汰。 若要避免推播通知服務中的任何中斷,您必須 儘快移轉至 FCM v1 通訊協定

FCM v1 的概念

  • 支援新的平臺類型,稱為 FCM v1
  • FCM v1 會使用新的 API、認證、註冊和安裝。

注意

本文中現有的 FCM 平台稱為 FCM 舊版

移轉步驟

Firebase 雲端傳訊 (FCM) 舊版 API 將於 2024 年 7 月淘汰。 您可以在 2024 年 3 月 1 日開始從舊版 HTTP 通訊協定移轉至 FCM v1。 您必須在 2024 年 6 月前完成移轉。 本節說明使用通知中樞 REST API 從 FCM 舊版移轉至 FCM v1 的步驟。

REST API

下一節說明如何使用 REST API 執行移轉。

步驟 1:將 FCM v1 認證新增至中樞

第一個步驟是透過 Azure 入口網站、管理平面中樞作業或數據平面中樞作業來新增認證。

建立Google服務帳戶 JSON 檔案

  1. 在 Firebase 控制台中,選取您的項目,然後移至 [項目設定]。

  2. 選取 [ 服務帳戶 ] 索引標籤、建立服務帳戶,並從您的Google服務帳戶產生私鑰。

  3. 選取 [產生新的私鑰 ] 以產生 JSON 檔案。 下載並開啟檔案。 將、 private_keyclient_email的值取代為 Azure 通知中樞認證更新所需的值project_id

    Firebase 控制台專案設定的螢幕快照。

    OR

    如果您想要建立具有自定義訪問許可權的服務帳戶,您可以透過 IAM 和 管理員 > 服務帳戶頁面建立服務帳戶。 按兩下 [ 管理服務帳戶許可權],直接移至頁面。 您可以建立具有下列其中一個角色的服務帳戶:

    • Firebase 管理員 (roles/firebase.admin)
    • Firebase 成長 管理員 (roles/firebase.growth 管理員)
    • Firebase 管理員 SDK 管理員 istrator 服務代理程式(roles/firebase.sdk 管理員 ServiceAgent)
    • Firebase SDK 布建服務代理程式 (roles/firebase.sdkProvisioningServiceAgent)

    顯示 IAM 服務帳戶設定的螢幕快照。

選項 1:透過 Azure 入口網站 更新 FcmV1 認證

移至 Azure 入口網站 上的通知中樞,然後選取 [設定 > Google (FCM v1)從從上一節取得的服務帳戶 JSON 檔案取得私鑰專案識別碼用戶端電子郵件值,並加以儲存以供日後使用。

顯示 Azure 入口網站 Firebase 認證選項的螢幕快照。

選項 2:透過管理平面中樞作業更新 FcmV1 認證

請參閱 NotificationHub FcmV1Credential 的描述。

  • 使用 API 版本:2023-10-01-preview

  • FcmV1CredentialProperties

    名稱 型別
    clientEmail 字串
    privateKey 字串
    projectId 字串

選項 3:透過數據平面中樞作業更新 FcmV1 認證

請參閱 建立通知中樞更新通知中樞

  • 使用 API 版本:2015-01
  • 請務必將 FcmV1Credential 放在 GcmCredential 之後,因為順序很重要。

例如,以下是要求本文:

<NotificationHubDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'> 
    <ApnsCredential> 
        <Properties> 
            <Property> 
                <Name>Endpoint</Name> 
                <Value>{_apnsCredential.Endpoint}</Value> 
            </Property> 
            <Property> 
                <Name>AppId</Name> 
                <Value>{_apnsCredential.AppId}</Value> 
            </Property> 
            <Property> 
                <Name>AppName</Name> 
                <Value>{_apnsCredential.AppName}</Value> 
            </Property> 
            <Property> 
                <Name>KeyId</Name> 
                <Value>{_apnsCredential.KeyId}</Value> 
            </Property> 
            <Property> 
                <Name>Token</Name> 
                <Value>{_apnsCredential.Token}</Value> 
            </Property> 
        </Properties> 
    </ApnsCredential> 
    <WnsCredential> 
        <Properties> 
            <Property> 
                <Name>PackageSid</Name> 
                <Value>{_wnsCredential.PackageSid}</Value> 
            </Property> 
            <Property> 
                <Name>SecretKey</Name> 
                <Value>{_wnsCredential.SecretKey}</Value> 
            </Property> 
        </Properties> 
    </WnsCredential> 
    <GcmCredential> 
        <Properties> 
            <Property> 
                <Name>GoogleApiKey</Name> 
                <Value>{_gcmCredential.GoogleApiKey}</Value> 
            </Property> 
        </Properties> 
    </GcmCredential> 
    <FcmV1Credential> 
        <Properties> 
            <Property> 
                <Name>ProjectId</Name> 
                <Value>{_fcmV1Credential.ProjectId}</Value> 
            </Property> 
            <Property> 
                <Name>PrivateKey</Name> 
                <Value>{_fcmV1Credential.PrivateKey}</Value> 
            </Property> 
            <Property> 
                <Name>ClientEmail</Name> 
                <Value>{_fcmV1Credential.ClientEmail}</Value> 
            </Property> 
        </Properties> 
    </FcmV1Credential> 
</NotificationHubDescription>

步驟 2:管理註冊和安裝

針對直接傳送案例,請直接前往步驟 3。 如果您使用其中一個 Azure SDK,請參閱 SDK 一文

選項 1:建立 FCM v1 註冊或將 GCM 註冊更新為 FCM v1

如果您有現有的 GCM 註冊,請將註冊更新為 FcmV1Registration。 請參閱 建立或更新註冊。 如果您沒有現有的 GcmRegistration,請建立新的註冊作為 FcmV1Registration。 請參閱 建立註冊。 註冊要求本文應如下列範例所示:

// FcmV1Registration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1RegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
        </FcmV1RegistrationDescription>
    </content>
</entry> 

// FcmV1TemplateRegistration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1TemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
            <BodyTemplate><![CDATA[ {BodyTemplate}]]></BodyTemplate>
        </FcmV1TemplateRegistrationDescription>
    </content>
</entry>

選項 2:建立 FCM c1 安裝或將 GCM 安裝更新為 FCM v1

請參閱 建立或覆寫安裝 並設定 platformFCMV1

步驟 3:傳送推播通知

選項 1:偵錯傳送

使用此程式來測試選項 2、3 或 4 之前的通知。 請參閱 通知中樞 - 偵錯傳送

注意

使用 API 版本:2023-10-01-preview。

在標頭中:

要求標頭
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format 設定為 fcmV1template
Servicebusnotification-Tags {單一標記標識符}

透過偵錯傳送來測試具有下列結構的承載。 請注意,FcmV1 會在 JSON 訊息承載結構中引入重大變更:

  1. 整個承載在訊息物件下移動。
  2. Android 特定選項已移至 Android 物件,且 time_to_live 現在 ttl 具有字串值。
  3. 欄位 data 現在只允許一般字串對字串對應。
  4. 如需詳細資訊,請參閱 FCM 參考

或者,您可以透過 Azure 入口網站 執行測試傳送(偵錯傳送):

顯示測試傳送頁面 Azure 入口網站 螢幕快照。

選項 2:直接傳送

執行直接傳送。 在要求標頭中,將設定 ServiceBusNotification-FormatfcmV1

選項 3:FcmV1 原生通知 (觀眾傳送)

執行 FcmV1 原生通知傳送。 請參閱 傳送Google雲端通訊 (GCM) 原生通知。 在要求標頭中,將設定 ServiceBusNotification-FormatfcmV1。 例如,在要求本文中:

{ 
  "message": { 
    "notification": {  
        "title": "Breaking News",  
        "body": "FcmV1 is ready."  
        }, 
    "android": {  
        "data": {  
            "name": "wrench",  
            "mass": "1.3kg",  
            "count": "3"  
            }  
        } 
    } 
}

選項 4:範本通知

您可以在新的 JSON 承載結構之後,使用新的要求主體來測試範本傳送。 不需要進行其他變更。 請參閱 傳送範本通知

下一步

使用 Azure SDK 進行 Firebase 雲端傳訊移轉