Как добавить данные к определенному документу во вложенной коллекции в базе данных пожарного депо? - PullRequest
0 голосов
/ 05 июля 2018

Мой index.js:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  let action = request.body.result.action;
  var Name = request.body.result.parameters.Name;
  let params = request.body.result.parameters;
  var Answer1 = request.body.result.parameters.Answer1;
  let query = request.body.result.resolvedQuery;

  const parameters = request.body.result.parameters;
  const inputContexts = request.body.result.contexts;

  if (action === 'save.name' || inputContexts == 'welcome' && action === 'save.answer1' || inputContexts == 'question1') {
    admin.firestore().collection('users').doc('Details').collection('MYuser1').add({
      name: Name,

    }).then(ref => {
      console.log('Added new user');
      console.log('ref id is:' + ref.id);

      admin.firestore().collection('users').doc('Details').collection('MYuser1').doc(ref.id).add({
        //here I'm using doc(ref.id) to get that document
        answer1: Answer1,
      })
    });
  }
});

Я мог бы добавить имя во вложенную коллекцию, используя этот код, но я пытаюсь добавить answer1 в следующий раз в тот же документ внутри вложенной коллекции, но это вызывает ошибку в этом утверждении,

admin.firestore().collection('users').doc('Details').collection('MYuser1').doc(ref.id).add({

ошибка выглядит так:

enter image description here

И я использую бот api v1!

1 Ответ

0 голосов
/ 05 июля 2018

В ссылке на документ нет метода add(). Это ссылка на ваш документ:

admin.firestore().collection('users').doc('Details').collection('MYuser1').doc(ref.id)

При этом вы пытаетесь вызвать для него метод add(). add() для коллекций, и вы используете его для добавления документа в коллекцию.

Мне не ясно, что вы пытаетесь сделать в этой строке, поскольку вы уже добавили документ ранее. Если у вас есть дополнительные поля для добавления в этот документ, имеет смысл добавить их все одновременно с первым вызовом add() в коллекции MyUser1.

...