Как получить данные из Firebase с помощью встроенного редактора DialogFlow

Я новичок в DialogFlow. Мне интересно, как я могу получить данные из Firebase через встроенный редактор DialogFlow. Надеюсь, ты сможешь мне помочь!


person JuzChoco    schedule 12.07.2018    source источник
comment
В общем, вы бы сделали это так же, как и с любой другой облачной функцией Firebase. Если у вас возникли проблемы, обновите свой вопрос, чтобы показать код того, что вы пробовали и какие ошибки вы получаете, позволит нам помочь вам намного лучше.   -  person Prisoner    schedule 12.07.2018


Ответы (1)


Вот как вы можете общаться с firebase из диалогового потока

const functions = require('firebase-functions');
const firebaseAdmin = require('firebase-admin');
const DialogflowApp = require('actions-on-google').DialogflowApp;

Инициализировать Firebase Admin SDK.

firebaseAdmin.initializeApp(functions.config().firebase); 

Взаимодействие с Firebase Collection users в функции выполнения

let userId = app.getUser().userId;
admin.firestore().collection('users').where('userId', '==', userId).limit(1).get()
.then(snapshot => {
      let user = snapshot.docs[0]
        if (!user) {
          // If user is not in DB, its their first time, Welcome them!
          app.ask('Welcome to my app for the first time!');
          // Add the user to DB
          firebaseAdmin.firestore().collection('users').add({
            userId: userId
          }).then(ref => {
              console.log('Added document with ID: ', ref.id);
          });
        } else {
          // User in DB
          app.ask('Welcome back!')
        }    
      });
  }

  // Map function hanlder to Dialogflow's welcome intent action 'input.welcome'
  const actionMap = new Map('input.welcome', start)
  app.handleRequest(actionMap);
person Onk_r    schedule 12.07.2018