我正在尝试通过网络应用发送通知到android设备。
我试图这样做,但是出现了这个错误。我看了许多其他问题,但找不到答案。我更新了所有内容,但仍然无法正常工作。
我在做什么错了?
我的代码:
const messaging = firebase.messaging();
var message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};
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);
});
答案 0 :(得分:0)
您似乎正在使用Firebase Admin SDK,该功能可以发送FCM消息。
Admin SDK授予其用户对Firebase项目的完全管理访问权限,这意味着该代码可以向您的所有用户发送任何类型的消息,但也可以访问您的Firebase项目中的任何其他资源(文件,数据库,用户帐户)随意进行项目。因此,只能将Admin SDK用于受信任的环境中,例如您控制的服务器,开发计算机或Cloud Functions。明确禁止在网页中使用它。
完成目标的一种典型方法是创建一个发送正确消息的Cloud Function,然后从您的网页调用该Cloud Function。由于只有Firebase项目上的协作者才能部署Cloud Functions,因此可以确保发送的消息来自您的代码。
答案 1 :(得分:0)
您显然要按照here中的意思使用admin。为此,请确保已安装firebase-admin
,否则请运行npm install firebase-admin
。
然后用作:
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
// Your logic here
})
.catch((error) => {
console.log('Error:', error);
});