我尝试使用 firebase fcm 云消息传递配置 Node js 服务器,当我尝试发送消息时,我收到了来自服务器的响应:
FirebaseMessagingError: An unknown server error was returned. Raw server response: ""DeprecatedApi""
at FirebaseMessagingError.fromServerError (/usr/src/app/node_modules/firebase-admin/lib/utils/error.js:269:16)
at /usr/src/app/node_modules/firebase-admin/lib/messaging/messaging.js:94:65
at Array.forEach (<anonymous>)
at mapRawResponseToDevicesResponse (/usr/src/app/node_modules/firebase-admin/lib/messaging/messaging.js:90:26)
at /usr/src/app/node_modules/firebase-admin/lib/messaging/messaging.js:484:24
我使用最新的“firebase-admin”:“12.4.0”,在firebase控制台上我仅启用“Firebase Cloud Messaging API(V1)”,并且我使用生成的带有凭据的json来初始化应用程序:
const firebaseAdmin = require('firebase-admin');
const firebaseApp = firebaseAdmin.initializeApp (
{
credential: firebaseAdmin.credential.cert ({
type: 'service_account',
project_id: ...,
private_key_id: ...,
private_key: ...,
client_email: ...,
client_id: ...,
auth_uri: 'https://accounts.google.com/o/oauth2/auth',
token_uri: 'https://accounts.google.com/o/oauth2/token',
auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
client_x509_cert_url: ...
}),
databaseURL: ...,
},
'app'
);
firebaseApp.messaging().sendToDevice(
tokens,
{
notification: {...},
data: {...}
}
);
由于 sendToDevice 我遇到了上面提到的错误。
我错过了什么或做错了什么?
sendToDevice 方法已弃用; Google 现在建议使用 send 方法。 SDK 6.0.0版本开始提供send方法
使用示例:
const message = {
notification: {
title: title,
body: body,
},
data: {
title: title,
},
token: pushToken
};
await firebase.messaging.send(message);
以下是有关使用 Google HTTP v1 API 进行消息传递的新方法的详细信息。提供此信息是为了帮助您使用 API v1 过渡到新方法: