如何将JSON数据保存到Google Firebase的Firestore数据库?

10

能否直接将JSON数据保存到Firebase Firestore?

我尝试保存以下的JSON数据:

数据

[{"id":"1234","name":"Chair","symbol":"CHR"}]

代码:

request({url: 'https://api.example.com/v1/data', json: true}, function (error, response, body) {
        if (!error && response.statusCode === 200) {
            res.send(body);    
            console.log(body);    
        }
        else {
            console.log(response.statusCode + " " + error);
        }
        db.collection('market').doc('price').set(body);

    });

错误

错误:参数"data"不是有效的文档。输入不是普通 JavaScript 对象。

解决方法

  1. 对于消息体使用JSON.parse()

db.collection('market').doc('price').set(JSON.parse(body));
  • 使用JSON.stringify()处理请求体

  • db.collection('market')doc('price').set(JSON.stringify(body));
    

    我仍然在遇到错误。

    1个回答

    6
    你的JSON数据是一个数组。请注意,它用方括号括起来:
    [{"id":"1234","name":"Chair","symbol":"CHR"}]
    

    您不能将数组作为Firestore中文档的内容。也许您只想添加数组的第一个元素,该元素是一个对象:

    db.collection('market').doc('price').set(body[0]);
    

    当然,在索引数组之前,您应该验证元素是否存在。

    2
    这对我来说是解决方案。我几乎在所有地方都搜索了关于这个错误的信息,但无法弄清楚为什么会发生这种情况。 - Par

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接