如何将WooCommerce Webhook返回的JSON写入Cloud Firestore?
WooCommerce Webhook对接云函数操作指引
方案1:HTTP云函数接收Payload写入Firestore
操作步骤如下:
- 初始化Firebase Cloud Functions项目,选择Node.js运行环境,安装
firebase-admin、firebase-functions两个依赖包。 - 编写云函数代码,示例如下:
const functions = require("firebase-functions"); const admin = require("firebase-admin"); admin.initializeApp(); const db = admin.firestore(); exports.woocommerceWebhook = functions.https.onRequest(async (req, res) => { // 仅处理POST请求 if (req.method !== "POST") { return res.status(405).send("仅支持POST请求"); } // 可选校验WooCommerce Webhook签名,提升安全性 // const wcSignature = req.headers["x-wc-webhook-signature"]; // 此处填入签名校验逻辑 try { const payload = req.body; // 自定义集合名,将Payload写入Firestore await db.collection("woocommerce_records").add({ data: payload, receive_time: admin.firestore.FieldValue.serverTimestamp() }); return res.status(200).send("接收成功"); } catch (err) { functions.logger.error("数据处理失败:", err); return res.status(500).send("服务内部错误"); } });
- 部署云函数后,复制生成的HTTP触发URL,填入WooCommerce Webhook的目标投递地址,投递格式选择JSON即可完成配置。
方案2:Webhook直接投递到Cloud Storage的注意事项
调试失败通常是身份验证配置问题:
- 直接投递需要在WooCommerce Webhook的请求头中添加Google Cloud OAuth2授权凭证,凭证需要持有目标存储桶的
storage.objects.create权限,直接开放存储桶公共写入权限会存在极高安全风险,不推荐该操作。 - 相比直接投递,更推荐走云函数中转,可先对Payload做格式校验、数据清洗后再写入存储,稳定性和安全性更高。
官方文档使用说明
你已找到的两份官方文档已经覆盖核心操作逻辑:HTTP触发云函数的编写规则参考Cloud Functions HTTP函数文档,云函数读写Firestore的API用法参考Firestore扩展云函数文档,参考对应示例代码调整适配即可。
内容的提问来源于stack exchange,提问作者Stephen Stilwell
相关产品推荐
相关产品推荐

