Nếu bạn chưa thiết lập Firebase Admin SDK rồi, hãy làm theo hướng dẫn để thiết lập Firebase Admin SDK trên máy chủ.
Bật API HTTP v1 của FCM
Trong bảng điều khiển Firebase, hãy chuyển đến
Settings > General (Cài đặt > Cài đặt chung). Sau đó, hãy nhấp vào thẻ Cloud Messaging (Nhắn tin qua đám mây).Bật Cloud Messaging API (API Nhắn tin qua đám mây).
Cho phép 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"). Nhờ đó, bạn có thể tập trung quản lý tài khoản dịch vụ trong 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 người gửi, hãy đảm bảo rằng bạn đã bật Firebase Cloud Messaging API (API Nhắn tin qua đám mây của Firebase). Kiểm tra xem bạn đã bật API này trong bảng điều khiển Firebase hay chưa bằng cách chuyển đến phần cài đặt
Settings > General. Sau đó, hãy nhấp vào thẻ Cloud Messaging (Nhắn tin qua đám mây).Trong dự án người gửi, hãy tạo một tài khoản dịch vụ.
Trong dự án đích, hãy chỉ định vai trò Firebase Cloud Messaging API Admin (Quản trị viên API Nhắn tin qua đám mây của Firebase) cho địa chỉ email của tài khoản dịch vụ. Bạn thực hiện việc này trong trang IAM & Admin > 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ụ từ dự án người gửi gửi thông báo đến dự án đích.
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 đích.
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 thông báo đế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 Firebase Mã lượt cài đặt (FID) hoặc mã đă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ã thông báo. Firebase Admin SDK trả về
chuỗi mã ở định dạng projects/{project_id}/messages/{message_id}.
Gửi một thông báo đến nhiều thiết bị
Admin FCM SDK cho phép bạn gửi một thông báo đến nhiều Mã lượt cài đặt Firebase (FID) hoặc mã đă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 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 rất hữu ích khi bạn muốn kiểm tra những mục tiêu nào gây ra lỗi. Nếu bạn cung cấp cả mã thông báo và FID, 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ã đă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ã đă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ã đă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ã đă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ã đă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 thông báo
Admin SDK hỗ trợ gửi danh sách tối đa 500 thông báo. Bạn có thể sử dụng tính năng này để tạo một nhóm thông báo tuỳ chỉnh và gửi đến nhiều người nhận, bao gồm cả chủ đề, Mã lượt cài đặt Firebase (FID) hoặc mã đă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 đến nhiều đối tượng.
Node.js
Sử dụng các 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ã đă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 các 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ã đă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 các 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ã đă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 các 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ã đă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 các 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ã đă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");