---
# System prepended metadata

title: Firebase Messaging Device Groups
tags: [Firebase, Messaging]

---

Firebase Messaging Device Groups
===

## 文章內容

[TOC]

## 設備組(Device Group)說明

1. 設備組消息允許您將多個設備添加到單個組。
2. 這類似於主題消息傳遞，但包括身份驗證以確保組成員身份僅由您的服務器管理。
    > 例如，如果您想向不同的手機型號發送不同的消息，您的服務器可以將註冊添加/刪除到適當的組，並將適當的消息發送到每個組。
4. 設備組消息與主題消息的不同之處在於它涉及從您的服務器，而不是直接在您的應用程序中管理設備組。
:::success
簡單來說，設備組是專給server管理token用的。
不像topic可以在client訂閱及取消。
:::


創建設備組，並添加或刪除設備。
---
> 要創建設備組，請發送一個 POST 請求，該請求提供該組的名稱以及設備的註冊令牌列表。 FCM 返回一個表示設備組的新notification_key 。
> 向 https://fcm.googleapis.com/fcm/notification 發送如下請求：
```json=
https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
Authorization:key=API_KEY
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]
```

> 成功的請求會返回一個notification_key ，如下所示：
```json=
{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
```

:::info
**在設備組中添加和刪除設備:**
要從現有組中添加或刪除設備，請發送 POST 請求，
並將**operation參數設置為add或remove**，並提供註冊令牌以進行添加或刪除。
:::


向設備組發送消息
---
> 向設備組發送消息與向單個設備發送消息非常相似。將to參數設置為設備組的唯一通知鍵。有關有效負載支持的詳細信息，請參閱消息類型。
```json=
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{
  "to": "aUniqueKey",
  "data": {
    "hello": "This is a Firebase Cloud Messaging Device Group Message!",
   }
}
```
> 回應
```json=
{
  "success":1,
  "failure":2,
  "failed_registration_ids":[
     "regId1",
     "regId2"
  ]
}
```

## 資料來源

:::info
[通過 Web/JavaScript 向設備組發送消息](https://firebase.google.com/docs/cloud-messaging/js/device-group)
:::

###### tags: `Firebase` `Messaging`
