Javascript Firebase函数代码已部署,但在控制台中不可见
我对Firebase函数有问题。一旦我在终端中执行firebase部署,就会收到以下消息Javascript Firebase函数代码已部署,但在控制台中不可见,javascript,node.js,firebase,Javascript,Node.js,Firebase,我对Firebase函数有问题。一旦我在终端中执行firebase部署,就会收到以下消息 === Deploying to 'xxxxxxxx'... i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint D:\Flutter Projects\xxxxxxxx\xxxxxxxx\functions > eslint . + functio
=== 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
但是,当我查看Firebase函数控制台时,它会说等待您的第一个实现
这是functions文件夹中的my index.js文件:
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;
运行node index.js时,代码按预期工作。我不确定是否以正确的方式导出了该函数,因此可能Firebase函数不知道要部署哪个函数。目标是Firebase函数每小时向所有设备发送一次通知,仅用于测试目的。我怎样才能做到这一点
注意:我已经根据线程检查了以下内容:
实际上是用我试图部署的函数保存了文件。
文件位于正确的目录中。对于JavaScript项目,默认值为functions/index.js
我正在从正确的目录部署正确的项目。
你必须重构你的代码来使用一个
const functions = require('firebase-functions');
const admin = require("firebase-admin");
const serviceAccount = require("../functions/xxxxxxxx-firebase-adminsdk.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://xxxxxxxx.firebaseio.com",
});
const payload = {
notification: {
title: "Test title",
body: "Test notification",
image: "",
},
};
const options = {
priority: "high",
to: '/topics/all'
}
exports.sendPushNotification = functions.pubsub.schedule('every 1 hour')
.onRun((context) => {
admin.messaging().sendToTopic("all", payload)
.then((response) => {
console.log("Successfully sent message: ", response);
return null;
})
.catch((error) => {
console.log("Error sending message: ", error);
return null;
});
});