Несмотря на то, что объект conv.user
способен хранить данные между разговорами, необходимо учитывать как технические, так и юридические ограничения, здесь задокументировано .
Когда помощник может сопоставить личность пользователя, содержимое пользовательского хранилища никогда не истекает, и очистить его может только пользователь или само Действие.
Когда помощник не может сопоставить личность пользователя, содержимое хранилища пользователя очищается в конце диалога. Примеры случаев, когда Помощник не может сопоставить личность пользователя:
- Голосовое совпадение установлено, и совпадения отсутствуют.
- Пользователь отключил личные данные.
В дополнение к объекту conv.user
вы также можете хранить данные в предпочитаемой вами базе данных. Этот пример Github демонстрирует, как подключить Dialogflow к базе данных Firebase Firestore.
Вы можете найти функцию записи здесь :
function writeToDb (agent) {
// Get parameter from Dialogflow with the string to add to the database
const databaseEntry = agent.parameters.databaseEntry;
// Get the database collection 'dialogflow' and document 'agent' and store
// the document {entry: "<value of database entry>"} in the 'agent' document
const dialogflowAgentRef = db.collection('dialogflow').doc('agent');
return db.runTransaction(t => {
t.set(dialogflowAgentRef, {entry: databaseEntry});
return Promise.resolve('Write complete');
}).then(doc => {
agent.add(`Wrote "${databaseEntry}" to the Firestore database.`);
}).catch(err => {
console.log(`Error writing to Firestore: ${err}`);
agent.add(`Failed to write "${databaseEntry}" to the Firestore database.`);
});
}