Чтобы использовать Firebase Cloud Messaging
для последующей отправки уведомлений, я пытаюсь написать облачную функцию с именем sendNotification ;и я сталкиваюсь с проблемой в процессе.Если возможно, я хотел бы получить несколько советов о том, как решить эту проблему;или, может быть, просто попросите кого-нибудь указать на ошибку, которую я могу сделать.
Вот сообщение об ошибке, которое я получаю при выполнении команды:
firebase deploy
⚠ functions[sendNotification(us-central1)]: Deployment error.
Function load error: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'serviceAccountKey.json'
at Function.Module._resolveFilename (module.js:476:15)
........
ItМожет быть полезно сказать, что файл serviceAccountKey.json находится в каталоге с именем node_modules , другими словами, отсутствует.Вот код в index.js:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var serviceAccount = require('serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://myapp.firebaseio.com'
});
exports.sendNotification = functions.https.onRequest((req, res) => {
let registrationToken = "abc123.........789xyz";
var payload = {
notification: {
title: "NotifTit",
body: "The good stuff."
},
token: registrationToken
};
admin.messaging().send(payload)
.then((response) => {
console.log("Successfully sent message: ", response);
})
.catch((error) => {
console.log("Error sending message: ", error);
})
});
Here is the contents of the package.json file:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~6.0.0",
"firebase-functions": "^2.1.0"
},
"private": true
}