我的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({
错误看起来像:
我正在使用api v1机器人!
答案 0 :(得分:0)
文档参考上没有add()
方法。这是您的文档参考:
admin.firestore().collection('users').doc('Details').collection('MYuser1').doc(ref.id)
因此,您尝试在其上调用add()
方法。 add()
用于集合,您可以使用它向集合中添加文档。
由于您之前已经添加了文档,因此我不清楚您要在那一行上做什么。如果您有更多字段要添加到该文档中,那么在您第一次在MyUser1集合上调用add()
时,将所有字段都添加进去是很有意义的。