为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2022-09-02 16:08:41
我正在研究云函数,以创建一个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\"]]"
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

在最后一个屏幕截图中,您似乎在发送一个字符串,因此这就是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"]}]"


查看完整回答
反对 回复 2022-09-02
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信