【问题标题】:How can you acknowledge a PubSub message in Firebase Cloud Functions?如何在 Firebase Cloud Functions 中确认 PubSub 消息?
【发布时间】:2020-05-05 02:13:05
【问题描述】:

我想知道确认 PubSub 消息(来自推送订阅者)的正确方法是什么,这是一个 Firebase 云功能。这是通过返回一个承诺来完成的吗?

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'

export const listener = functions.pubsub.topic('new_members').onPublish(async (message:any) => {

let data = {
  name: 'Los Angeles',
  state: 'CA',
  country: 'USA'
};

// Will a PubSub message be acknowledged just by retuning a promise?
return await db.collection('cities').doc('LA').set(data);
}

感谢您的帮助。

【问题讨论】:

标签: javascript firebase google-cloud-functions google-cloud-pubsub


【解决方案1】:

注意:Cloud Functions 会在函数调用成功后在内部确认 Pub/Sub 消息。启用重试后,Cloud Functions 可以使用相同的 Pub/Sub 消息重新调用在执行期间失败的函数。

https://cloud.google.com/functions/docs/calling/pubsub#functions_calling_pubsub-java

【讨论】:

    【解决方案2】:

    如果您的函数通过返回已解决的承诺成功完成,则消息将被确认。如果函数抛出异常或返回被拒绝的 Promise,那么 pubsub 将重试该消息。

    【讨论】:

    • @doug-stevenson,它对 firebase 功能仍然有效吗?当functions.pubsub.topic..onPublish 返回被拒绝的承诺时,我没有看到重新传递消息的尝试
    • 您能分享一些文档的链接或引用外部资源吗?因为这似乎不是真的。
    • 具体来说,重试部分好像不对
    • @seza443 documentation 声明“注意:Cloud Functions 在函数调用成功后在内部确认消息。有关如何使用重试处理失败的信息,请参阅重试后台函数。”
    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 2019-07-26
    • 2019-10-05
    • 2021-09-01
    • 2020-08-08
    • 2018-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多