Firebase Cloud Functions HTTPS 中的参数

Posted

技术标签:

【中文标题】Firebase Cloud Functions HTTPS 中的参数【英文标题】:Parameters in Firebase Cloud Functions HTTPS 【发布时间】:2017-11-28 09:46:03 【问题描述】:

如何在 Firebase 中为我的 HTTPS 函数设置一些参数? 我正在构建一个应用程序,在构建应用程序的同时,我设法增加了我的邮件列表。现在我想发送邮件,但我想确保他们可以在我发送任何内容之前取消订阅。

我在所有事情上都使用 Firebase,并且我设法创建了一个功能,可以将邮件发送到每个订阅的邮件。

我还可以“取消订阅”特定邮件,但这是硬编码的,根本不是最佳解决方案。

exports.testUnsub = functions.https.onRequest((req, res) => 
  var db = admin.database();
  var ref = db.ref("mailingList/-KhBOisltrOmv57Mrzus");
  ref.child("subscribed").set(false);
  console.log("-KhBOisltrOmv57Mrzus has unsubscribed from mailing list.");
);

在我发送的邮件中有一个 URL,它触发了这个 HTTPS 功能。我想在该 URL 上设置一个参数,使其变为动态的。比如:

https://us-central1-<project-id>.cloudfunctions.net/testUnsub?listID=xxxxxxxxxxx

我正在寻找任何能让我朝着正确方向前进的东西。

【问题讨论】:

【参考方案1】:

重要的是要知道 https 函数的 req 和 res 参数是 Express.js Request 和 Response 对象。

Request 对象包含有关来自客户端的请求的所有数据,包括客户端在 URL 中发送的 query。格式为req.query.name_of_the_parameter

【讨论】:

但是当我使用req.query.titl时,我得到“您的客户没有获取 URL 的权限” Doug 有没有办法使用 Cloud Functions 来定义和提取路由参数,类似于 Express,您可以在其中执行 app.get('/users/:userId/books/:bookId', function (req, res) ... 之类的操作? @PatNeedham 您可以查看此github link 或firebase doc,它利用firebase 功能作为普通快速路由器。这样您就可以按照自己喜欢的方式匹配端点。

以上是关于Firebase Cloud Functions HTTPS 中的参数的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中为 Firebase 使用 Cloud Functions

Cloud Functions for Firebase 超时

Firebase Cloud Functions https.onCall 完成状态码:204

Cloud Functions for Firebase onWrite 超时

Easy Firebase Cloud Functions 组织

在 Firebase Cloud Functions 中创建 PDF