繁体   English   中英

如何使用复杂的 JSON Webhook 中的 Node JS Cloud Function 写入 Cloud Firestore?

[英]How to write to the Cloud Firestore using Node JS Cloud Function from Complex JSON Webhook?

我有一个 Webhook,它向我的云 Function URL 传送一个复杂的 JSON 有效负载,并将该 JSON 写入我的 Cloud Firestore 中的 collections 和文档。

我的云 Function 看起来像这样:

exports.webhook = functions.https.onRequest(async (req, res) => {
     await admin.firestore().collection("testCollection").doc().set({
          nameOfFieldFromFirestore: data.nameOfFieldFromJson,
]);

这在它是一个简单的 JSON 时有效,例如:嵌套不多的一个。

我不明白的是如何格式化此 Node.JS Google Cloud Function 以接受来自嵌套的复杂 JSON 的字段。

我相信 Google Cloud Functions 上的 Node.JS 运行时使用 Express 中间件 HTTP 框架。

样本 JSON:

"id": "1",
"people": {
     "id": "1",
}

我知道如何在第 1 行返回 id。我不确定如何在第 3 行返回 id。

如果你想按原样添加整个 webhook 负载,那么你可以在set()中传递 object :

exports.webhook = functions.https.onRequest(async (req, res) => {
  const payload = req.body
 
  await admin.firestore().collection("testCollection").doc().set(payload)
  res.status(200).end()
);

如果你想要一个特定的(例如提供的 JSON 中的 id),你可以像这样访问它:

exports.webhook = functions.https.onRequest(async (req, res) => {
  const payload = req.body

  await admin.firestore().collection("testCollection").doc().set({
    someField: payload.people.id
  })
  res.status(200).end()
);

Firestore 文档类似于 JSON object,因此您可以将嵌套映射的最大深度设置为 20

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM