如何将 Webhook JSON 写入 Cloud Firestore?
How do I get a Webhook JSON written to the Cloud Firestore?
我有一个 WooCommerce Webhook 要我发送 JSON 到 URL,我相信这是一个 POST http 请求。
我已经使用 Webhook.site 测试了 Webhook,它显示了正确的 JSON 负载。
开发人员建议我使用云函数接收 JSON、解析 JSON 并将其写入 Cloud Firestore。
是否有关于 Cloud Functions for Firebase 或 Google Cloud Platform 的 Cloud Functions 的详细说明此过程的文档?
我在 Cloud Firestore 文档中没有找到任何内容。
另一个可用的解决方案可能是将 Webhook JSON 发送到 Cloud Storage,但我也未能成功。我想我可能需要将身份验证集成到 HTTP 请求中 headers 才能成功。
参考资料和文档:
“使用 Cloud Functions 扩展 Cloud Firestore”https://firebase.google.com/docs/firestore/extend-with-functions
“云函数 - HTTP 函数”https://cloud.google.com/functions/docs/writing/http
什么触发了 webhook?当文档为 created/modified/deleted 而不是任何外部事件时,Firestore 触发器起作用。您可能正在寻找 (Firebase) Call functions via HTTP requests(您也可以直接使用 Google Cloud Functions 执行相同操作)。您可以编写如下所示的函数:
exports.myWebhookFunction = functions.https.onRequest((req, res) => {
const webhookBody = req.body;
// parse data
// Add to Firestore/Storage
// Terminate function
});
当您部署此功能时,您将获得一个 URL(来自 CLI 或也在仪表板中),您可以在您的 WooCommerce webhook 中设置一个 webhook 交付 URL。
经典方法是使用 HTTPS Cloud Function,它将在以下 URL 处公开端点:https://<region>-<project-id>.cloudfunctions.net/<cloud-function-name>
这里有一个代码框架,作为基础:
// cloud-function-name = myWebhook
exports.myWebhook = functions.https.onRequest(async (req, res) => {
const body = req.body; //body is an array of JavaScript objects
// Get the details of the WooCommerce event, most probably from the body
const updateObj = {...}
// Write to Firestore
await admin.firestore().collection('...').doc('...').set(updateObj);
return res.status(200).end();
});
在这个官方 video 中有关于这种 Cloud Functions 的更多详细信息,包括如何管理错误以及如何将相应的 HTTP 代码发送回调用者。
我有一个 WooCommerce Webhook 要我发送 JSON 到 URL,我相信这是一个 POST http 请求。
我已经使用 Webhook.site 测试了 Webhook,它显示了正确的 JSON 负载。
开发人员建议我使用云函数接收 JSON、解析 JSON 并将其写入 Cloud Firestore。
是否有关于 Cloud Functions for Firebase 或 Google Cloud Platform 的 Cloud Functions 的详细说明此过程的文档?
我在 Cloud Firestore 文档中没有找到任何内容。
另一个可用的解决方案可能是将 Webhook JSON 发送到 Cloud Storage,但我也未能成功。我想我可能需要将身份验证集成到 HTTP 请求中 headers 才能成功。
参考资料和文档:
“使用 Cloud Functions 扩展 Cloud Firestore”https://firebase.google.com/docs/firestore/extend-with-functions
“云函数 - HTTP 函数”https://cloud.google.com/functions/docs/writing/http
什么触发了 webhook?当文档为 created/modified/deleted 而不是任何外部事件时,Firestore 触发器起作用。您可能正在寻找 (Firebase) Call functions via HTTP requests(您也可以直接使用 Google Cloud Functions 执行相同操作)。您可以编写如下所示的函数:
exports.myWebhookFunction = functions.https.onRequest((req, res) => {
const webhookBody = req.body;
// parse data
// Add to Firestore/Storage
// Terminate function
});
当您部署此功能时,您将获得一个 URL(来自 CLI 或也在仪表板中),您可以在您的 WooCommerce webhook 中设置一个 webhook 交付 URL。
经典方法是使用 HTTPS Cloud Function,它将在以下 URL 处公开端点:https://<region>-<project-id>.cloudfunctions.net/<cloud-function-name>
这里有一个代码框架,作为基础:
// cloud-function-name = myWebhook
exports.myWebhook = functions.https.onRequest(async (req, res) => {
const body = req.body; //body is an array of JavaScript objects
// Get the details of the WooCommerce event, most probably from the body
const updateObj = {...}
// Write to Firestore
await admin.firestore().collection('...').doc('...').set(updateObj);
return res.status(200).end();
});
在这个官方 video 中有关于这种 Cloud Functions 的更多详细信息,包括如何管理错误以及如何将相应的 HTTP 代码发送回调用者。