猿问

使用javascript将firebase云函数中的数组发送到实时数据库

我正在研究云函数,以创建一个API,该API采用这样的数组字典


["keyOne":

     ["itemOne","itemTwo"],

  "keyTwo":

     ["itemone","itemTwo"]

我创建了云函数,将其带入正文,我使用邮递员发送了正文,但我仍然有一个问题,字典存储在firebase日志中作为字符串


云函数代码:


exports.createProduct = functions.https.onRequest((req, res) => {

    if (req.method !== 'POST') {

        return res.status(500).json({

            message: 'not allowed'

        })

    }

    console.log(req.body.variants)

    var firebaseRef = db.ref("product").push();

    firebaseRef.set({

        variants: req.body.variants

    });

    res.status(200).json({

        message: req.body

    });

});

变体作为我发送 :


variants:["Key":["items1","items2","items3"]]

存储在 firebase 日志中,如下所示:


variants: "[\"Key\":[\"items1\",\"items2\",\"items3\"]]"


慕姐4208626
浏览 73回答 1
1回答

HUWWW

在最后一个屏幕截图中,您似乎在发送一个字符串,因此这就是Firebase存储的内容。如果需要,可以从 Cloud Functions 代码中的字符串解析数组:firebaseRef.set({   variants: JSON.parse(req.body.variants); })您的 JSON 中似乎也存在语法错误:"[\"Key\":[\"items1\",\"items2\",\"items3\"]]"我能说的最接近的是:"[{\"Key\":[\"items1\",\"items2\",\"items3\"]}]"或"{\"Key\":[\"items1\",\"items2\",\"items3\"]}"我还强烈建议在字符串周围使用单引号,这样您就不必转义其中的双引号:'[{"Key":["items1","items2","items3"]}]'我建议不要通过字符串串联创建 JSON,而是使用来防止生成无效的 JSON。JSON.stringify()JSON.stringify([{Key: ["items1", "items2", "items3"]}])这给出了:"[{"Key":["items1","items2","items3"]}]"
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答