Как сохранить данные JSON в базу данных Firestore Google Firebase?

Можно ли сохранить данные 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);

    });

Ошибка

Ошибка: Аргумент «данные» не является допустимым документом. Ввод не является простым объектом JavaScript.

Обходной путь

  1. JSON.parse() для тела

    db.collection('market').doc('price').set(JSON.parse(body));
    
  2. JSON.stringify() для тела

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

Я все еще получаю сообщение об ошибке.


person Aravin    schedule 15.01.2018    source источник


Ответы (1)


Ваши данные JSON представляют собой массив. Обратите внимание, что он заключен в квадратные скобки:

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

Вы не можете использовать массив в качестве содержимого документа в Firestore. Возможно, вы просто хотите добавить первый элемент массива, который является объектом:

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

Конечно, прежде чем индексировать массив, вы должны убедиться, что элемент существует.

person Doug Stevenson    schedule 15.01.2018
comment
Это было решением для меня. Я почти везде искал эту ошибку и не мог понять, почему это происходит. - person Par; 05.02.2019