【问题标题】:How to notify a Firebase Admin SDK user using a cloud function?如何使用云功能通知 Firebase Admin SDK 用户?
【发布时间】:2019-04-26 20:30:27
【问题描述】:

我是一名开发应用程序的学生,我有一些使用 Firebase 管理 SDK 的后端 python 代码。该应用程序提供了一个专有算法的接口,该算法不能移动到云功能中,因此必须保留在后端服务器中。当用户向算法发出请求时,他们会将文档上传到 Firestore,其中包含后端处理其请求所需的信息。

一旦用户上传了一个文档,就会触发一个 onCreate() 云函数,这个函数的目的是简单的通知后端有一个待处理的请求,以便它可以处理它并发送回用户。

这是我苦苦挣扎的地方,我无法推断出一种从云功能中触发后端操作的方法。我希望通过 Firebase 找到一种方法来实现这一点,而无需实现额外的库等。

概括我的问题的一种方法是: 您将如何通过 Cloud Function 通知 Firebase Admin SDK 用户?

【问题讨论】:

  • 您可以像在任何其他 nodejs 应用程序中一样执行此操作 - 例如通过使用 http 调用。请注意,firebase 免费层对云功能中的外部网络流量有限制。
  • 请注意,我在 Node.js 方面缺乏经验,并且只使用它,因为它是 Cloud Functions 所需的语言。你的意思是我应该只在云功能中向我的后端发送一个 http 请求?有没有我可以查看的资源来显示我如何设置它?
  • twilio.com/blog/2017/08/http-requests-in-node-js.html - nodejs http call 的第一个 Google 结果
  • 好的,感谢您提供的潜在解决方案,但我不相信设置我的后端来接收和处理 http 请求将是我想要的解决方案。我正在研究可能使用 FireBase 的 FCM 消息。

标签: firebase google-cloud-firestore firebase-cloud-messaging google-cloud-functions firebase-admin


【解决方案1】:

Firebase Functions SDK 已经在后台使用了 Firebase Admin SDK。因此,如果您在 Node.js 中设置 Cloud Functions 触发器,则可以从 Function 本身访问 Admin SDK。例如,以 Cloud Storage 触发器为例:

const admin = require('firebase-admin');
admin.initializeApp();

exports.fn = functions.storage.object().onFinalize((object) => {
  // Call Admin SDK APIs
});

Python 也应该可以进行类似的集成:https://medium.com/@hiranya911/firebase-using-the-python-admin-sdk-on-google-cloud-functions-590f50226286

【讨论】:

    【解决方案2】:

    FCM 用于向移动客户端发送消息和通知。它不适用于向后端组件发送消息。

    如果您想通知某个后端组件,通常使用 HTTP 端点或 pubsub 消息传递。

    【讨论】:

    • 我将实现一种在后端接收 http 请求的方法。感谢您的回复。
    猜你喜欢
    • 2022-01-23
    • 2017-12-13
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 2018-08-05
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多