I'm having issues with the Firebase Functions. As soon as I execute firebase deploy in the terminal, I get the following message
=== Deploying to 'xxxxxxxx'... i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint D:\Flutter Projects\xxxxxxxx\xxxxxxxx\functions > eslint . + functions: Finished running predeploy script. i functions: ensuring required API cloudfunctions.googleapis.com is enabled... + functions: required API cloudfunctions.googleapis.com is enabled i functions: preparing functions directory for uploading... + Deploy complete! Project Console: https://console.firebase.google.com/project/xxxxxxxx/overview But when I take a look in the Firebase Functions console, it says "waiting for your first implementation".
This is my index.js file inside the functions folder:
const admin = require("firebase-admin"); var serviceAccount = require("../functions/xxxxxxxx-firebase-adminsdk.json"); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://xxxxxxxx.firebaseio.com" }); var payload = { notification: { title: "Test title", body: "Test notification", image: "" }, }; var options = { priority: "high", to: '/topics/all' } function sendPushNotification(payload){ admin.messaging().sendToTopic("all", payload) .then((response) => { console.log("Successfully sent message: ", response); return null; }) .catch((error) => { console.log("Error sending message: ", error); }); } setInterval(() => { sendPushNotification(payload); }, 3600000); module.exports.sendPushNotification = sendPushNotification; When running node index.js the code works as expected. I'm not sure if I exported the function the right way, so maybe Firebase Functions doesn't know which function to deploy. The goal is that Firebase Functions sends a notification every hour (just for testing purposes) to all devices. How can I achieve this?
Note: I've checked the following (according to this thread):
- Actually saved the file with the function i'm trying to deploy.
- The file is in the correct directory. For JavaScript projects, the default is functions/index.js
- I am deploying the correct project from the correct directory.