Nếu bạn chưa thiết lập Firebase Admin SDK, hãy làm theo hướng dẫn để thiết lập Firebase Admin SDK trên máy chủ của bạn.
Bật API HTTP v1 của FCM
Trong bảng điều khiển Firebase, hãy chuyển đến phần
Cài đặt > Chung. Sau đó, hãy nhấp vào thẻ Cloud Messaging.Bật Cloud Messaging API.
Uỷ quyền cho tài khoản dịch vụ từ một dự án khác
Bạn có thể gửi thông báo cho một dự án (dự án đích) trong khi sử dụng tài khoản dịch vụ trong một dự án khác (dự án người gửi). Điều này cho phép bạn tập trung việc quản lý tài khoản dịch vụ vào một dự án trong khi gửi thông báo thay mặt cho những người khác. Để tìm hiểu cách thực hiện việc này, hãy làm theo các bước sau:
Trong dự án của người gửi, hãy đảm bảo rằng bạn đã bật Firebase Cloud Messaging API. Kiểm tra xem tính năng này có được bật trong bảng điều khiển Firebase hay không bằng cách chuyển đến phần
Cài đặt > Cài đặt chung. Sau đó, hãy nhấp vào thẻ Cloud Messaging.Trong dự án người gửi, hãy tạo một tài khoản dịch vụ.
Trong dự án mục tiêu, hãy chỉ định vai trò Quản trị viên Firebase Cloud Messaging API cho địa chỉ email của tài khoản dịch vụ. Bạn có thể thực hiện việc này trong trang IAM (Quản lý danh tính và quyền truy cập) > IAM của bảng điều khiển Google Cloud. Vai trò này cho phép tài khoản dịch vụ của dự án người gửi gửi thông báo đến dự án mục tiêu.
Khởi chạy SDK bằng tệp khoá tài khoản dịch vụ của dự án người gửi và mã dự án của dự án mục tiêu.
Node.js
import { initializeApp, applicationDefault } from 'firebase-admin/app'; initializeApp({ // The credential is configured to be the sender project's service // account key via the environment variable GOOGLE_APPLICATION_CREDENTIALS credential: applicationDefault(), projectId: '<TARGET_PROJECT_ID>', });Java
FirebaseOptions options = FirebaseOptions.builder() // The credential is configured to be the sender project's service // account key via the environment variable GOOGLE_APPLICATION_CREDENTIALS .setCredentials(GoogleCredentials.getApplicationDefault()) .setProjectId("<TARGET_PROJECT_ID>") .build(); FirebaseApp.initializeApp(options);Python
import firebase_admin app_options = {'projectId': '<TARGET_PROJECT_ID>'} # Initialize with the default credential, i.e. the sender project's service # account key, stored in GOOGLE_APPLICATION_CREDENTIALS default_app = firebase_admin.initialize_app(options=app_options)Bắt đầu
config := &firebase.Config{ProjectID: "<TARGET_PROJECT_ID>"} // Initialize with the default credential, i.e. the sender project's service // account key, stored in GOOGLE_APPLICATION_CREDENTIALS app, err := firebase.NewApp(context.Background(), config) if err != nil { log.Fatalf("error initializing app: %v\n", err) }C#
FirebaseApp.Create(new AppOptions() { // The credential is configured to be the sender project's service // account key via the environment variable GOOGLE_APPLICATION_CREDENTIALS Credential = GoogleCredential.GetApplicationDefault(), ProjectId = "<TARGET_PROJECT_ID>", });
Gửi tin nhắn đến các thiết bị cụ thể
Để gửi đến một thiết bị cụ thể, bạn có thể nhắm đến Mã nhận dạng lượt cài đặt (FID) Firebase hoặc mã thông báo đăng ký của thiết bị đó.
Node.js
Sử dụng FID (Nên dùng):
// This installation ID comes from the client FCM SDKs.
const fid = 'YOUR_REGISTERED_FID';
const message = {
data: {
score: '850',
time: '2:45'
},
fid: fid
};
// Send a message to the device corresponding to the provided FID.
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
Sử dụng mã đăng ký (Không dùng nữa):
// This registration token comes from the client FCM SDKs.
const registrationToken = 'YOUR_REGISTRATION_TOKEN';
const message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};
// Send a message to the device corresponding to the provided
// registration token.
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
Java
Sử dụng FID (Nên dùng):
// This installation ID comes from the client FCM SDKs.
String fid = "YOUR_REGISTERED_FID";
// See documentation on defining a message payload.
Message message = Message.builder()
.putData("score", "850")
.putData("time", "2:45")
.setFid(fid)
.build();
// Send a message to the device corresponding to the provided FID.
String response = FirebaseMessaging.getInstance().send(message);
// Response is a message ID string.
System.out.println("Successfully sent message: " + response);
Sử dụng mã đăng ký (Không dùng nữa):
// This registration token comes from the client FCM SDKs.
String registrationToken = "YOUR_REGISTRATION_TOKEN";
// See documentation on defining a message payload.
Message message = Message.builder()
.putData("score", "850")
.putData("time", "2:45")
.setToken(registrationToken)
.build();
// Send a message to the device corresponding to the provided
// registration token.
String response = FirebaseMessaging.getInstance().send(message);
// Response is a message ID string.
System.out.println("Successfully sent message: " + response);
Python
Sử dụng FID (Nên dùng):
# This installation ID comes from the client FCM SDKs.
fid = 'YOUR_REGISTERED_FID'
# See documentation on defining a message payload.
message = messaging.Message(
data={
'score': '850',
'time': '2:45',
},
fid=fid,
)
# Send a message to the device corresponding to the provided FID.
response = messaging.send(message)
# Response is a message ID string.
print('Successfully sent message:', response)
Sử dụng mã đăng ký (Không dùng nữa):
# This registration token comes from the client FCM SDKs.
registration_token = 'YOUR_REGISTRATION_TOKEN'
# See documentation on defining a message payload.
message = messaging.Message(
data={
'score': '850',
'time': '2:45',
},
token=registration_token,
)
# Send a message to the device corresponding to the provided
# registration token.
response = messaging.send(message)
# Response is a message ID string.
print('Successfully sent message:', response)
Bắt đầu
Sử dụng FID (Nên dùng):
// Obtain a messaging.Client from the App.
ctx := context.Background()
client, err := app.Messaging(ctx)
if err != nil {
log.Fatalf("error getting Messaging client: %v\n", err)
}
// This installation ID comes from the client FCM SDKs.
fid := "YOUR_REGISTERED_FID"
// See documentation on defining a message payload.
message := &messaging.Message{
Data: map[string]string{
"score": "850",
"time": "2:45",
},
Fid: fid,
}
// Send a message to the device corresponding to the provided FID.
response, err := client.Send(ctx, message)
if err != nil {
log.Fatalln(err)
}
// Response is a message ID string.
fmt.Println("Successfully sent message:", response)
Sử dụng mã đăng ký (Không dùng nữa):
// Obtain a messaging.Client from the App.
ctx := context.Background()
client, err := app.Messaging(ctx)
if err != nil {
log.Fatalf("error getting Messaging client: %v\n", err)
}
// This registration token comes from the client FCM SDKs.
registrationToken := "YOUR_REGISTRATION_TOKEN"
// See documentation on defining a message payload.
message := &messaging.Message{
Data: map[string]string{
"score": "850",
"time": "2:45",
},
Token: registrationToken,
}
// Send a message to the device corresponding to the provided
// registration token.
response, err := client.Send(ctx, message)
if err != nil {
log.Fatalln(err)
}
// Response is a message ID string.
fmt.Println("Successfully sent message:", response)
C#
Sử dụng FID (Nên dùng):
// This installation ID comes from the client FCM SDKs.
var fid = "YOUR_REGISTERED_FID";
var message = new Message()
{
Data = new Dictionary<string, string>()
{
{ "score", "850" },
{ "time", "2:45" },
},
Fid = fid,
};
// Send a message to the device corresponding to the provided FID.
string response = await FirebaseMessaging.DefaultInstance.SendAsync(message);
// Response is a message ID string.
Console.WriteLine("Successfully sent message: " + response);
Sử dụng mã đăng ký (Không dùng nữa):
// This registration token comes from the client FCM SDKs.
var registrationToken = "YOUR_REGISTRATION_TOKEN";
// See documentation on defining a message payload.
var message = new Message()
{
Data = new Dictionary<string, string>()
{
{ "score", "850" },
{ "time", "2:45" },
},
#pragma warning disable CS0618
Token = registrationToken,
#pragma warning restore CS0618
};
// Send a message to the device corresponding to the provided
// registration token.
string response = await FirebaseMessaging.DefaultInstance.SendAsync(message);
// Response is a message ID string.
Console.WriteLine("Successfully sent message: " + response);
Khi thành công, mỗi phương thức gửi sẽ trả về một mã nhận dạng thông báo. Firebase Admin SDK sẽ trả về chuỗi mã nhận dạng ở định dạng projects/{project_id}/messages/{message_id}.
Gửi một tin nhắn đến nhiều thiết bị
SDK FCM quản trị cho phép bạn truyền tin nhắn đến một danh sách gồm Mã nhận dạng lượt cài đặt Firebase (FID) hoặc mã thông báo đăng ký thiết bị. Bạn có thể sử dụng tính năng này khi cần gửi cùng một thông báo đến nhiều thiết bị. Bạn có thể chỉ định tối đa 500 FID và/hoặc mã thông báo cho mỗi lệnh gọi.
Giá trị trả về bao gồm một danh sách các phản hồi tương ứng với thứ tự của các mục tiêu đầu vào, FID và/hoặc mã thông báo. Điều này sẽ hữu ích khi bạn muốn kiểm tra xem mục tiêu nào dẫn đến lỗi. Nếu cả mã thông báo và FID đều được cung cấp, thì mã thông báo sẽ được xử lý trước, sau đó là FID.
Node.js
Sử dụng FID (Nên dùng):
// These Firebase Installation IDs (FIDs) come from the client FCM SDKs.
const fids = [
'YOUR_REGISTERED_FID_1',
// ...
'YOUR_REGISTERED_FID_N'
];
const message = {
data: {score: '850', time: '2:45'},
fids: fids,
};
getMessaging().sendEachForMulticast(message)
.then((response) => {
console.log(response.successCount + ' messages were sent successfully');
if (response.failureCount > 0) {
const failedFids = [];
response.responses.forEach((resp, idx) => {
if (!resp.success) {
failedFids.push(fids[idx]);
}
});
console.log('List of FIDs that caused failures: ' + failedFids);
}
});
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// These registration tokens come from the client FCM SDKs.
const registrationTokens = [
'YOUR_REGISTRATION_TOKEN_1',
// …
'YOUR_REGISTRATION_TOKEN_N',
];
const message = {
data: {score: '850', time: '2:45'},
tokens: registrationTokens,
};
getMessaging().sendEachForMulticast(message)
.then((response) => {
if (response.failureCount > 0) {
const failedTokens = [];
response.responses.forEach((resp, idx) => {
if (!resp.success) {
failedTokens.push(registrationTokens[idx]);
}
});
console.log('List of tokens that caused failures: ' + failedTokens);
}
});
Java
Sử dụng FID (Nên dùng):
// These Firebase Installation IDs (FIDs) come from the client FCM SDKs.
List<String> fids = Arrays.asList(
"YOUR_REGISTERED_FID_1",
// ...
"YOUR_REGISTERED_FID_N"
);
MulticastMessage message = MulticastMessage.builder()
.putData("score", "850")
.putData("time", "2:45")
.addAllFids(fids)
.build();
BatchResponse response = FirebaseMessaging.getInstance().sendEachForMulticast(message);
if (response.getFailureCount() > 0) {
List<SendResponse> responses = response.getResponses();
List<String> failedFids = new ArrayList<>();
for (int i = 0; i < responses.size(); i++) {
if (!responses.get(i).isSuccessful()) {
// The order of responses corresponds to the order of the destination FIDs.
failedFids.add(fids.get(i));
}
}
System.out.println("List of FIDs that caused failures: " + failedFids);
}
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// These registration tokens come from the client FCM SDKs.
List<String> registrationTokens = Arrays.asList(
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n"
);
MulticastMessage message = MulticastMessage.builder()
.putData("score", "850")
.putData("time", "2:45")
.addAllTokens(registrationTokens)
.build();
BatchResponse response = FirebaseMessaging.getInstance().sendEachForMulticast(message);
if (response.getFailureCount() > 0) {
List<SendResponse> responses = response.getResponses();
List<String> failedTokens = new ArrayList<>();
for (int i = 0; i < responses.size(); i++) {
if (!responses.get(i).isSuccessful()) {
// The order of responses corresponds to the order of the registration tokens.
failedTokens.add(registrationTokens.get(i));
}
}
System.out.println("List of tokens that caused failures: " + failedTokens);
}
Python
Sử dụng FID (Nên dùng):
# These Firebase Installation IDs (FIDs) come from the client FCM SDKs.
fids = [
'YOUR_REGISTERED_FID_1',
# ...
'YOUR_REGISTERED_FID_N',
]
message = messaging.MulticastMessage(
data={'score': '850', 'time': '2:45'},
fids=fids,
)
response = messaging.send_each_for_multicast(message)
if response.failure_count > 0:
responses = response.responses
failed_fids = []
for idx, resp in enumerate(responses):
if not resp.success:
# The order of responses corresponds to the order of the destination FIDs.
failed_fids.append(fids[idx])
print('List of FIDs that caused failures: {0}'.format(failed_fids))
Sử dụng mã thông báo đăng ký (Không dùng nữa):
# These registration tokens come from the client FCM SDKs.
registration_tokens = [
'YOUR_REGISTRATION_TOKEN_1',
# ...
'YOUR_REGISTRATION_TOKEN_N',
]
message = messaging.MulticastMessage(
data={'score': '850', 'time': '2:45'},
tokens=registration_tokens,
)
response = messaging.send_each_for_multicast(message)
if response.failure_count > 0:
responses = response.responses
failed_tokens = []
for idx, resp in enumerate(responses):
if not resp.success:
# The order of responses corresponds to the order of the registration tokens.
failed_tokens.append(registration_tokens[idx])
print(f'List of tokens that caused failures: {failed_tokens}')
Bắt đầu
Sử dụng FID (Nên dùng):
// Create a list containing up to 500 Firebase Installation IDs (FIDs).
// These Firebase Installation IDs (FIDs) come from the client FCM SDKs.
fids := []string{
"YOUR_REGISTERED_FID_1",
// ...
"YOUR_REGISTERED_FID_N",
}
message := &messaging.MulticastMessage{
Data: map[string]string{
"score": "850",
"time": "2:45",
},
Fids: fids,
}
br, err := client.SendEachForMulticast(ctx, message)
if err != nil {
log.Fatalln(err)
}
if br.FailureCount > 0 {
var failedFids []string
for idx, resp := range br.Responses {
if !resp.Success {
// The order of responses corresponds to the order of the destination FIDs.
failedFids = append(failedFids, fids[idx])
}
}
fmt.Printf("List of FIDs that caused failures: %v\n", failedFids)
}
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// Create a list containing up to 500 registration tokens.
// This registration tokens come from the client FCM SDKs.
registrationTokens := []string{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
}
message := &messaging.MulticastMessage{
Data: map[string]string{
"score": "850",
"time": "2:45",
},
Tokens: registrationTokens,
}
br, err := client.SendEachForMulticast(context.Background(), message)
if err != nil {
log.Fatalln(err)
}
if br.FailureCount > 0 {
var failedTokens []string
for idx, resp := range br.Responses {
if !resp.Success {
// The order of responses corresponds to the order of the registration tokens.
failedTokens = append(failedTokens, registrationTokens[idx])
}
}
fmt.Printf("List of tokens that caused failures: %v\n", failedTokens)
}
C#
Sử dụng FID (Nên dùng):
// These Firebase Installation IDs (FIDs) come from the client FCM SDKs.
var fids = new List<string>()
{
"YOUR_REGISTERED_FID_1",
// ...
"YOUR_REGISTERED_FID_N",
};
var message = new MulticastMessage()
{
Data = new Dictionary<string, string>()
{
{ "score", "850" },
{ "time", "2:45" },
},
Fids = fids,
};
var response = await FirebaseMessaging.DefaultInstance.SendEachForMulticastAsync(message);
if (response.FailureCount > 0)
{
var failedFids = new List<string>();
for (var i = 0; i < response.Responses.Count; i++)
{
if (!response.Responses[i].IsSuccess)
{
// The order of responses corresponds to the order of the destination FIDs.
failedFids.add(fids[i]);
}
}
Console.WriteLine($"List of FIDs that caused failures: {string.Join(", ", failedFids)}");
}
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// These registration tokens come from the client FCM SDKs.
var registrationTokens = new List<string>()
{
"YOUR_REGISTRATION_TOKEN_1",
// ...
"YOUR_REGISTRATION_TOKEN_n",
};
var message = new MulticastMessage()
{
#pragma warning disable CS0618
Tokens = registrationTokens,
#pragma warning restore CS0618
Data = new Dictionary<string, string>()
{
{ "score", "850" },
{ "time", "2:45" },
},
};
var response = await FirebaseMessaging.DefaultInstance.SendEachForMulticastAsync(message);
if (response.FailureCount > 0)
{
var failedTokens = new List<string>();
for (var i = 0; i < response.Responses.Count; i++)
{
if (!response.Responses[i].IsSuccess)
{
// The order of responses corresponds to the order of the registration tokens.
failedTokens.Add(registrationTokens[i]);
}
}
Console.WriteLine($"List of tokens that caused failures: {failedTokens}");
}
Gửi danh sách tin nhắn
Admin SDK hỗ trợ gửi danh sách có tối đa 500 thông báo. Bạn có thể dùng tính năng này để tạo một bộ thông báo tuỳ chỉnh và gửi đến nhiều người nhận, bao gồm cả chủ đề, Mã nhận dạng lượt cài đặt Firebase (FID) hoặc mã thông báo đăng ký thiết bị. Ví dụ: Bạn có thể sử dụng tính năng này khi cần gửi nhiều thông báo khác nhau cho nhiều đối tượng.
Node.js
Sử dụng mục tiêu hỗn hợp (Nên dùng):
// Create a list containing up to 500 messages.
const messages = [
{
notification: { title: 'Price drop', body: '5% off all electronics' },
fid: 'YOUR_REGISTERED_FID', // Using FID (Recommended)
},
{
notification: { title: 'Price drop', body: '2% off all books' },
token: 'YOUR_REGISTRATION_TOKEN', // Using token (Deprecated)
},
{
notification: { title: 'Price drop', body: '10% off all shoes' },
topic: 'readers-club',
}
];
getMessaging().sendEach(messages)
.then((response) => {
console.log(response.successCount + ' messages were sent successfully');
});
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// Create a list containing up to 500 messages.
const messages = [];
messages.push({
notification: { title: 'Price drop', body: '5% off all electronics' },
token: registrationToken,
});
messages.push({
notification: { title: 'Price drop', body: '2% off all books' },
topic: 'readers-club',
});
getMessaging().sendEach(messages)
.then((response) => {
console.log(response.successCount + ' messages were sent successfully');
});
Java
Sử dụng mục tiêu hỗn hợp (Nên dùng):
// Create a list containing up to 500 messages.
List<Message> messages = new ArrayList<>();
messages.add(Message.builder()
.setNotification(Notification.builder()
.setTitle("Price drop")
.setBody("5% off all electronics")
.build())
.setFid("YOUR_REGISTERED_FID") // Using FID (Recommended)
.build());
messages.add(Message.builder()
.setNotification(Notification.builder()
.setTitle("Price drop")
.setBody("2% off all books")
.build())
.setToken("YOUR_REGISTRATION_TOKEN") // Using token (Deprecated)
.build());
messages.add(Message.builder()
.setNotification(Notification.builder()
.setTitle("Price drop")
.setBody("10% off all shoes")
.build())
.setTopic("readers-club")
.build());
BatchResponse response = FirebaseMessaging.getInstance().sendEach(messages);
// See the BatchResponse reference documentation
// for the contents of response.
System.out.println(response.getSuccessCount() + " messages were sent successfully");
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// Create a list containing up to 500 messages.
List<Message> messages = Arrays.asList(
Message.builder()
.setNotification(Notification.builder()
.setTitle("Price drop")
.setBody("5% off all electronics")
.build())
.setToken(registrationToken)
.build(),
// ...
Message.builder()
.setNotification(Notification.builder()
.setTitle("Price drop")
.setBody("2% off all books")
.build())
.setTopic("readers-club")
.build()
);
BatchResponse response = FirebaseMessaging.getInstance().sendEach(messages);
// See the BatchResponse reference documentation
// for the contents of response.
System.out.println(response.getSuccessCount() + " messages were sent successfully");
Python
Sử dụng mục tiêu hỗn hợp (Nên dùng):
# Create a list containing up to 500 messages.
messages = [
messaging.Message(
notification=messaging.Notification('Price drop', '5% off all electronics'),
fid='YOUR_REGISTERED_FID', # Using FID (Recommended)
),
messaging.Message(
notification=messaging.Notification('Price drop', '2% off all books'),
token='YOUR_REGISTRATION_TOKEN', # Using token (Deprecated)
),
messaging.Message(
notification=messaging.Notification('Price drop', '10% off all shoes'),
topic='readers-club',
),
]
response = messaging.send_each(messages)
# See the BatchResponse reference documentation
# for the contents of response.
print('{0} messages were sent successfully'.format(response.success_count))
Sử dụng mã thông báo đăng ký (Không dùng nữa):
# Create a list containing up to 500 messages.
messages = [
messaging.Message(
notification=messaging.Notification('Price drop', '5% off all electronics'),
token=registration_token,
),
# ...
messaging.Message(
notification=messaging.Notification('Price drop', '2% off all books'),
topic='readers-club',
),
]
response = messaging.send_each(messages)
# See the BatchResponse reference documentation
# for the contents of response.
print(f'{response.success_count} messages were sent successfully')
Bắt đầu
Sử dụng mục tiêu hỗn hợp (Nên dùng):
// Create a list containing up to 500 messages.
messages := []*messaging.Message{
{
Notification: &messaging.Notification{
Title: "Price drop",
Body: "5% off all electronics",
},
Fid: "YOUR_REGISTERED_FID", // Using FID (Recommended)
},
{
Notification: &messaging.Notification{
Title: "Price drop",
Body: "2% off all books",
},
Token: "YOUR_REGISTRATION_TOKEN", // Using token (Deprecated)
},
{
Notification: &messaging.Notification{
Title: "Price drop",
Body: "10% off all shoes",
},
Topic: "readers-club",
},
}
br, err := client.SendEach(ctx, messages)
if err != nil {
log.Fatalln(err)
}
// See the BatchResponse reference documentation
// for the contents of response.
fmt.Printf("%d messages were sent successfully\n", br.SuccessCount)
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// Create a list containing up to 500 messages.
messages := []*messaging.Message{
{
Notification: &messaging.Notification{
Title: "Price drop",
Body: "5% off all electronics",
},
Token: registrationToken,
},
{
Notification: &messaging.Notification{
Title: "Price drop",
Body: "2% off all books",
},
Topic: "readers-club",
},
}
br, err := client.SendEach(context.Background(), messages)
if err != nil {
log.Fatalln(err)
}
// See the BatchResponse reference documentation
// for the contents of response.
fmt.Printf("%d messages were sent successfully\n", br.SuccessCount)
C#
Sử dụng mục tiêu hỗn hợp (Nên dùng):
// Create a list containing up to 500 messages.
var messages = new List<Message>()
{
new Message()
{
Notification = new Notification()
{
Title = "Price drop",
Body = "5% off all electronics",
},
Fid = "YOUR_REGISTERED_FID", // Using FID (Recommended)
},
new Message()
{
Notification = new Notification()
{
Title = "Price drop",
Body = "2% off all books",
},
Token = "YOUR_REGISTRATION_TOKEN", // Using token (Deprecated)
},
new Message()
{
Notification = new Notification()
{
Title = "Price drop",
Body = "10% off all shoes",
},
Topic = "readers-club",
},
};
var response = await FirebaseMessaging.DefaultInstance.SendEachAsync(messages);
// See the BatchResponse reference documentation
// for the contents of response.
Console.WriteLine($"{response.SuccessCount} messages were sent successfully");
Sử dụng mã thông báo đăng ký (Không dùng nữa):
// Create a list containing up to 500 messages.
var messages = new List<Message>()
{
new Message()
{
Notification = new Notification()
{
Title = "Price drop",
Body = "5% off all electronics",
},
#pragma warning disable CS0618
Token = registrationToken,
#pragma warning restore CS0618
},
new Message()
{
Notification = new Notification()
{
Title = "Price drop",
Body = "2% off all books",
},
Topic = "readers-club",
},
};
var response = await FirebaseMessaging.DefaultInstance.SendEachAsync(messages);
// See the BatchResponse reference documentation
// for the contents of response.
Console.WriteLine($"{response.SuccessCount} messages were sent successfully");