Node.jsを利用してCloud FunctionsからCloud Firestoreにデータを登録してみます。。
今回作成したソースコードは以下にようになります。
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
// Firestore初期化
admin.initializeApp(functions.config().firebase);
let db = admin.firestore();
// Functions呼び出し
exports.dialogFlowSample = functions.https.onRequest((request, response) => {
let parameters = request.body.queryResult.parameters;
response.setHeader('Content-Type', 'application/json;charset=utf-8');
if (parameters.method === "サンプル") {
// 処理を省略
} else if (parameters.method === "DB接続") {
// chatコレクションに、新しいドキュメントとして追加する。
let docRef = db.collection('chat').add({text: parameters.text})
.then(ref => {
response.send(JSON.stringify({ 'fulfillmentText': 'DBに登録を行いました。' }));
}).catch(error => {
console.log(error);
});
}
});
Dialogflowから取得した値(textパラメータ)を、そのままCloud Firestoreに格納しています。