Я нашел возможную опцию ...
(При работе в DialogFlow в Node.js большая часть кода находится в обработчике, и параметр обычно называется conv
.предполагается, что он находится внутри такого обработчика.)
При каждом отдельном вызове проверяйте «существующий» идентификатор в данных сеанса и хранилище пользователя:
var id = conv.data.MyId || conv.user.storage.MyId || '';
if(!id) {
id = /* make a new Id for this user... a GUID or some other unique id */
conv.user.storage.MyId = id;
}
Один разЯ получаю Id из хранилища или создаю новый, очень важно переназначить его на conv.data
, так как conv.user.storage
кажется надежно предоставленным только при первом вызове!
// IMPORTANT
conv.data.MyId = id;
/* use the Id as needed */
Мой код выглядитвверх по идентификатору в базе данных Firebase, чтобы узнать подробности их последнего посещения.
Кажется, это работает, но может быть ненадежным.