我正在尝试使用具有特定于平台的配置的Firebase Cloud Functions发送推送通知。我从https://firebase.google.com/docs/cloud-messaging/send-message
进行了配置build error
但遇到var message = {
notification: {
title: '$GOOG up 1.43% on the day',
body: '$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.',
},
data: {
channel_id: threadId,
},
android: {
ttl: 3600 * 1000,
notification: {
icon: 'stock_ticker_update',
color: '#f45342',
},
},
apns: {
payload: {
aps: {
badge: 42,
},
},
},
};
admin.messaging().sendToDevice(deviceToken, message)
有什么想法吗?还是一些适用于iOS / Android平台的正确配置示例?
答案 0 :(得分:2)
sendToDevice()
是使用旧版FCM HTTP端点的功能。传统端点不提供特定于平台的字段。为了获得该功能,可以通过send()
函数使用新端点。您可能需要更新您的Admin SDK版本。您可以在documentation here中看到一个示例。
例如,对于您提供的代码,您将发送如下消息:
let message = {
notification: {
title: '$GOOG up 1.43% on the day',
body: '$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.',
},
data: {
channel_id: threadId,
},
android: {
ttl: 3600 * 1000,
notification: {
icon: 'stock_ticker_update',
color: '#f45342',
},
},
apns: {
payload: {
aps: {
badge: 42,
},
},
},
token: deviceToken,
};
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
请注意,设备令牌现在位于message
对象中。