我们希望通过带有pubsub触发器(https://firebase.google.com/docs/functions/pubsub-events)的firebase云功能接收关于主题的pubsub通知。但是,https://firebase.google.com/docs/functions/pubsub-events并没有说明如何设置pubsub订阅,只说明了如何在firebase中接收它。
pubsub订阅类型“推”似乎是我们想要的,所以我们不需要拉。如果我们创建一个类型为“push”的pubsub订阅,那么我们应该指定一个https端点,但正如我们所理解的那样,firebase pubsub触发器是一个后台函数。是否存在我们应该为pubsub订阅指定的关联https端点,以便通知将正确到达firebase并触发我们的firebase云功能中的pubsub触发器?
或者我们是否需要在app引擎上创建另一个推送端点,例如,然后firebase pubsub云功能会被触发?
您没有设置订阅以使pubsub主题与Cloud Functions一起使用。当新消息发布到主题时,该函数将触发。所有你需要做的就是create the topic(使用gcloud命令行来简化这一点)和publish messages to it。
Cloud Pub/Sub triggers可以使用Google's Cloud Scheduler在预定时间开火。然后触发器可以触发您的Firebase云功能。您可以从Google Cloud Console创建发布/订阅主题。
exports.refresh = functions.runWith(runtimeExtended).pubsub.topic('cron-topic').onPublish((message, context) => {
const messageBody = message.data ? Buffer.from(message.data, 'base64').toString() : null;
console.log(context.timestamp + ' ' + context.eventId + ' : Refresh Function w payload ' + messageBody + ' fired.' );
return // return your promisified/async function here, e.g. return admin.firestore().collection("foo").get();
});