Messaging class

繫結至指定應用程式的訊息服務。

簽名:

export declare class Messaging 

屬性

屬性 修飾符 類型 說明
應用程式 應用程式 與目前 Messaging 服務執行個體相關聯的應用程式

方法

方法 修飾符 說明
enableLegacyHttpTransport() 允許針對 sendEach()sendEachForMulticast() 使用舊版 HTTP/1.1 傳輸功能。
send(訊息, dryRun) 透過 FCM 傳送指定訊息。
sendAll(messages, dryRun) 透過 Firebase 雲端通訊傳送指定陣列中的所有訊息。使用批次處理,將整份清單當做單一 RPC 呼叫傳送。與 send() 方法相比,這個方法是傳送多則訊息的效率大幅提升的方式。從傳回值取得的回應清單會對應 MulticastMessage 中的權杖順序。如果此方法產生錯誤,即代表總失敗。也就是說,無法傳送清單中的任何訊息。如果部分失敗,會傳回 BatchResponse 值。
sendEach(messages, dryRun) 系統會透過 Firebase 雲端通訊傳送指定陣列中的每則訊息。Messaging.sendAll() 不同,這個方法會針對指定陣列中的每則訊息,發出單一遠端程序呼叫 (RPC)。從回傳值取得的回應清單會對應至 messages 的順序。如果這個方法或 BatchResponse 發生錯誤,則表示總失敗。也就是說,無法傳送清單中的任何訊息。如果發生部分失敗或失敗,系統只會傳回 BatchResponse 傳回值。
sendEachForMulticast(訊息, dryRun) 將指定的多點傳播訊息傳送給指定的所有 FCM 註冊權杖。這個方法會使用背景的 Messaging.sendEach() API 傳送特定訊息給所有目標收件者。從傳回值取得的回應清單會對應 MulticastMessage 中的權杖順序。如果這個方法發生錯誤,或 BatchResponse 發生所有失敗情形,則表示總失敗。也就是說,系統可能會傳送清單中的訊息。如果發生部分失敗或失敗,系統只會傳回 BatchResponse 傳回值。
sendMulticast(訊息, dryRun) 將指定的多點傳播訊息傳送給指定的所有 FCM 註冊權杖。這個方法實際上會使用 sendAll() API,將特定訊息傳送給所有目標收件者。從傳回值取得的回應清單會對應 MulticastMessage 中的權杖順序。此方法的錯誤表示總失敗,意味著訊息沒有傳送至清單中的任何權杖。如果部分失敗,會傳回 BatchResponse 值。
sendToCondition(condition, payload, 選項) 將 FCM 訊息傳送至條件。如需程式碼範例和詳細說明文件,請參閱傳送至條件
sendToDevice(RegistrationTokenOrTokens, payload, 選項) 將 FCM 訊息傳送至與所提供註冊權杖相對應的單一裝置。如需程式碼範例和詳細說明文件,請參閱傳送至個別裝置。取用 registrationToken 傳送至單一裝置,或接收包含權杖陣列的 registrationTokens 參數,並傳送至多部裝置。
sendToDeviceGroup(notificationKey, payload, 選項) 將 FCM 訊息傳送到與指定通知鍵相對應的裝置群組。如需程式碼範例和詳細說明文件,請參閱傳送至裝置群組
sendToTopic(topic, payload, 選項) 將 FCM 訊息傳送至主題。如需程式碼範例和詳細說明文件,請參閱傳送至主題
subscribeToTopic(RegistrationTokenOrTokens, 主題) 將裝置訂閱 FCM 主題。如需程式碼範例和詳細說明文件,請參閱訂閱主題。你也可以選擇提供一系列權杖來訂閱多部裝置。
unsubscribeFromTopic(RegistrationTokenOrTokens, 主題) 取消訂閱裝置與 FCM 主題。如需程式碼範例和詳細說明文件,請參閱取消訂閱主題。您也可以提供一組權杖來取消訂閱多部裝置。

Messaging.app

與目前 Messaging 服務執行個體相關聯的應用程式

簽名:

get app(): App;

範例

var app = messaging.app;

Messaging.enableLegacyHttpTransport()

當 HTTP/2 傳輸實作結果達到與舊版 HTTP/1.1 實作項目相同的穩定性時,就會移除這個 SDK。

允許針對 sendEach()sendEachForMulticast() 使用舊版 HTTP/1.1 傳輸。

簽名:

enableLegacyHttpTransport(): void;

傳回:

void

範例

const messaging = getMessaging(app);
messaging.enableLegacyTransport();
messaging.sendEach(messages);

Messaging.send()

透過 FCM 傳送指定訊息。

簽名:

send(message: Message, dryRun?: boolean): Promise<string>;

參數

參數 類型 說明
訊息 傳送訊息 訊息酬載。
模擬測試 布林值 是否以模擬測試 (僅限驗證) 模式傳送訊息。

傳回:

承諾<字串>

訊息成功遞交 FCM 服務傳送後,保證會交付訊息,但會包含專屬訊息 ID 字串。

Messaging.sendAll()

請改用 Messaging.sendEach()

透過 Firebase 雲端通訊傳送指定陣列中的所有訊息。使用批次處理,將整份清單當做單一 RPC 呼叫傳送。相較於 send() 方法,這個方法在傳送多則訊息時更有效率。

從傳回值取得的回應清單會對應至 MulticastMessage 中的符記順序。如果此方法產生錯誤,即代表總失敗。也就是說,無法傳送清單中的任何訊息。如果部分失敗,會傳回 BatchResponse 值。

簽名:

sendAll(messages: Message[], dryRun?: boolean): Promise<BatchResponse>;

參數

參數 類型 說明
訊息 訊息[] 非空白陣列,最多可包含 500 則訊息。
模擬測試 布林值 是否在模擬測試 (僅限驗證) 模式下傳送訊息。

傳回:

Promise<BatchResponse>

Promise 已完成,其中包含代表傳送作業結果的物件。

Messaging.sendEach()

透過 Firebase 雲端通訊傳送指定陣列中的每則訊息。

Messaging.sendAll() 不同,這個方法會針對指定陣列中的每則訊息,發出單一遠端程序呼叫 (RPC)。

從傳回值取得的回應清單會對應至 messages 的順序。如果這個方法或 BatchResponse 發生錯誤,則表示總失敗。也就是說,無法傳送清單中的任何訊息。如果失敗或失敗,系統只會傳回 BatchResponse 傳回值。

簽名:

sendEach(messages: Message[], dryRun?: boolean): Promise<BatchResponse>;

參數

參數 類型 說明
訊息 訊息[] 非空白陣列,最多可包含 500 則訊息。
模擬測試 布林值 是否在模擬測試 (僅限驗證) 模式下傳送訊息。

傳回:

Promise<BatchResponse>

Promise 已完成,其中包含代表傳送作業結果的物件。

Messaging.sendEachForMulticast()

將指定的多點傳播訊息傳送至當中指定的所有 FCM 註冊權杖。

這個方法會在背景中使用 Messaging.sendEvery() API 將特定訊息傳送給所有目標收件者。從傳回值取得的回應清單會對應至 MulticastMessage 中的符記順序。如果這個方法發生錯誤,或 BatchResponse 發生所有失敗情形,則表示總失敗。也就是說,系統可能會傳送清單中的訊息。如果發生部分失敗或失敗,系統只會傳回 BatchResponse 傳回值。

簽名:

sendEachForMulticast(message: MulticastMessage, dryRun?: boolean): Promise<BatchResponse>;

參數

參數 類型 說明
訊息 多點傳播訊息 包含最多 500 個符記的多點傳播訊息。
模擬測試 布林值 是否以模擬測試 (僅限驗證) 模式傳送訊息。

傳回:

Promise<BatchResponse>

Promise 已完成,其中包含代表傳送作業結果的物件。

Messaging.sendMulticast()

請改用 Messaging.sendEachForMulticast()

將指定的多點傳播訊息傳送至當中指定的所有 FCM 註冊權杖。

這個方法實際上會使用 sendAll() API,將指定訊息傳送給所有目標收件者。從傳回值取得的回應清單會對應至 MulticastMessage 中的符記順序。此方法的錯誤表示總失敗,意味著訊息沒有傳送至清單中的任何權杖。如果部分失敗,會傳回 BatchResponse 值。

簽名:

sendMulticast(message: MulticastMessage, dryRun?: boolean): Promise<BatchResponse>;

參數

參數 類型 說明
訊息 多點傳播訊息 包含最多 500 個符記的多點傳播訊息。
模擬測試 布林值 是否以模擬測試 (僅限驗證) 模式傳送訊息。

傳回:

Promise<BatchResponse>

Promise 已完成,其中包含代表傳送作業結果的物件。

Messaging.sendToCondition()

將 FCM 訊息傳送至條件。

如需程式碼範例和詳細說明文件,請參閱「傳送至條件」一節。

簽名:

sendToCondition(condition: string, payload: MessagingPayload, options?: MessagingOptions): Promise<MessagingConditionResponse>;

參數

參數 類型 說明
條件 字串 決定訊息傳送主題的條件。
payload MessagingPayload 訊息酬載。
選項 訊息選項 選用選項,可用於修改訊息。

傳回:

Promise<MessagingConditionResponse>

訊息送出後已實現伺服器回應的承諾。

Messaging.sendToDevice()

請改用 Messaging.send()

這個外掛程式能將 FCM 訊息傳送至與指定註冊權杖相對應的裝置。

如需程式碼範例和詳細說明文件,請參閱「傳送至個別裝置」一文。取用 registrationToken 傳送至單一裝置,或接收包含權杖陣列的 registrationTokens 參數,並傳送至多部裝置。

簽名:

sendToDevice(registrationTokenOrTokens: string | string[], payload: MessagingPayload, options?: MessagingOptions): Promise<MessagingDevicesResponse>;

參數

參數 類型 說明
RegistrationTokenOrTokens 字串 |字串 []
payload MessagingPayload 訊息酬載。
選項 訊息選項 選用選項,可用於修改訊息。

傳回:

Promise<MessagingDevicesResponse>

訊息送出後已實現伺服器回應的承諾。

Messaging.sendToDeviceGroup()

請改用 Messaging.send()

這個外掛程式能將 FCM 訊息傳送至與指定通知鍵相對應的裝置群組。

如需程式碼範例和詳細說明文件,請參閱「傳送至裝置群組」一文。

簽名:

sendToDeviceGroup(notificationKey: string, payload: MessagingPayload, options?: MessagingOptions): Promise<MessagingDeviceGroupResponse>;

參數

參數 類型 說明
通知鍵 字串 訊息目的地裝置群組的通知鍵。
payload MessagingPayload 訊息酬載。
選項 訊息選項 選用選項,可用於修改訊息。

傳回:

Promise<MessagingDeviceGroupResponse>

訊息送出後已實現伺服器回應的承諾。

Messaging.sendToTopic()

將 FCM 訊息傳送至主題。

如需程式碼範例和詳細說明文件,請參閱「傳送到主題」一節。

簽名:

sendToTopic(topic: string, payload: MessagingPayload, options?: MessagingOptions): Promise<MessagingTopicResponse>;

參數

參數 類型 說明
主題 字串 要傳送訊息的主題。
payload MessagingPayload 訊息酬載。
選項 訊息選項 選用選項,可用於修改訊息。

傳回:

Promise<MessagingTopicResponse>

訊息送出後已實現伺服器回應的承諾。

Messaging.subscribeToTopic()

將裝置訂閱 FCM 主題。

如需程式碼範例和詳細說明文件,請參閱「訂閱主題」一文。你也可以選擇提供一系列權杖來訂閱多部裝置。

簽名:

subscribeToTopic(registrationTokenOrTokens: string | string[], topic: string): Promise<MessagingTopicManagementResponse>;

參數

參數 類型 說明
RegistrationTokenOrTokens 字串 |字串 []
主題 字串 要訂閱的主題。

傳回:

Promise<MessagingTopicManagementResponse>

已在裝置訂閱主題後已實現伺服器回應的承諾。

Messaging.unsubscribeFromTopic()

為裝置取消訂閱 FCM 主題。

如需程式碼範例和詳細說明文件,請參閱「取消訂閱特定主題」一文。您也可以提供一組權杖來取消訂閱多部裝置。

簽名:

unsubscribeFromTopic(registrationTokenOrTokens: string | string[], topic: string): Promise<MessagingTopicManagementResponse>;

參數

參數 類型 說明
RegistrationTokenOrTokens 字串 |字串 []
主題 字串 要取消訂閱的主題。

傳回:

Promise<MessagingTopicManagementResponse>

已承諾在裝置取消訂閱主題後已實現伺服器回應。