首页 > 解决方案 > 使用 Cloud Functions 将复杂的 Json 写入 Cloud Firestore 的语法?

问题描述

我有一个 webhook,可以将 JSON 有效负载传送到我的 Cloud Function URL。Cloud Function 将获取 JSON,并将其写入 Cloud Firestore。

我不知道如何处理这种复杂 JSON 有括号 [] 的情况。

我的猜测是,对于这种复杂的 JSON 有括号的情况,我必须添加一些附加语法。

此外,对于我的云 Firestore 中的模式,我试图从 line_items 中获取 id,并将其写入名为“line_items”的 Map 数据类型,其中包含一个名为 id_line_items 的字段。

index.js

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

exports.webhook = async (req, res) => {
  const payload = req.body;

  await admin.firestore().collection("testCollection1").doc().set({
  
  line_items: {
    id_line_items: payload.line_items.id,
    },
  });
  return res.status(200).end();
}

Json 有效载荷

"line_items": [
        {
            "id": 97,
        }
    ],

当 JSON 有效负载如下所示时,我没有遇到任何错误:注意此有效负载如何没有方括号 []

"billing": {
        "id": "97",
    },

标签: node.jsjsonfirebaseexpressgoogle-cloud-functions

解决方案


有问题的 Json 是一个数组,我需要指定位置。

id_line_items: payload.line_items.id,

需要改为:

id_line_items: payload.line_items[0].id,

推荐阅读