2017-10-18 7 views
2

Est-il possible d'obtenir des données à partir de la base de données firebase en utilisant le dialogue? Je suis novice dans le domaine des dialogues, donc je fais encore des recherches sur. Par exemple, je souhaite demander à mon chatbot si un docteur est disponible alors chatbot accédera à la base de données db pour vérifier si ce docteur spécifique est disponible ou permet de me programmer un rendez-vous avec le doc X afin que le dialogue fasse une fonction permet d'entrer un objet annexe dans la base de donnéesdialogflow pour interagir avec la base de données en temps réel firebase

merci.

Répondre

1

Vous pouvez utiliser la fonction Firebase pour remplir votre agent Dialogflow et la base de données Firestore pour stocker des données. Un exemple de la façon de le faire avec l'intégration de Google Assistant de Dialogflow est ci-dessous:

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

// Initialize Firebase Admin SDK. 
firebaseAdmin.initializeApp(functions.config().firebase); 

exports.dialogflowFulfillment = functions.https.onRequest((req, res) => { 
    // Log headers and body 
    console.log('Request headers: ' + JSON.stringify(req.headers)); 
    console.log('Request body: ' + JSON.stringify(req.body)); 

    // Create a new Dialgoflow app request handler 
    let app = new DialogflowApp({request: req, response: res}); 

    // welcome function handler 
    function start(app) { 
     // Get user ID from the Google Assistant through Action on Google 
     let userId = app.getUser().userId; 
     // Check if the user is in our DB 
     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); 
}); 
+0

Je n'ai pas beaucoup d'expérience sur google assistant et firestore. J'étais Tryong un tutoriel que j'ai trouvé dans ce lien. Je me suis intéressé à la façon dont il a été développé et je voulais apprendre à partir de zéro. https://codelabs.developers.google.com/codelabs/assistant-codelab/index.html?index=..%2F..%2Findex#0 –

+0

pouvez-vous fournir un code sans assistant google? Merci –