Как сохранить ценность между намерениями - PullRequest
0 голосов
/ 10 июня 2018

У меня есть действия в Google с полным заполнением, реализованным как функция Firebase.

Я использую объект app.data для хранения значений между намерениями.Это работало, но теперь оно забывается, и я получаю «неопределенное».

В первом намерении я сохраняю полученное от пользователя значение и запрашиваю подтверждение

app.intent('intent1', (conv, {myValue}) => {

        //CLEAN AND STORE THE VALUE
        conv.data.myValue = myValue.replace(/[\W_]+/g,'').toUpperCase();


        //ASK USER TO CONFIRM
        conv.contexts.set(Contexts.CONFIRM_YES_NO, 1);      
        //THIS WORKS OK AND THE VALUE IS DISPLAYED CORRECTLY
        conv.ask(`I heard ${conv.data.myValue}, is this correct?`);
        conv.ask(new Suggestions('Yes'));
        conv.ask(new Suggestions('No'));

});

ВВторое намерение Я хочу повторно использовать исходное значение, но получаю «неопределенное»:

app.intent('confirm_yes', (conv) => {   
        //RETURNS "UNDEFINED"
        console.log(conv.data.myValue);

});

Что здесь происходит?Этот подход работал до сегодняшнего дня, когда я обновил firebase-tools@3.18.6.Я внес дополнительные изменения, так что не уверен, сломал ли я это или Google ...

1 Ответ

0 голосов
/ 10 июня 2018

ТАК удивительно, как только я отправил вопрос, мой мозг понял ответ!

В любом случае, я не использую контекст вывода для намерения да / нет, а вместо того, чтобы удалить выводимя контекста (синий х на картинке), я удалил весь выходной контекст (красный х на картинке).

Это сломало ... Видимо, когда вы полностью удаляете выходной контекст, контекст сбрасывается.Я не совсем понимаю контексты, я думаю ...

enter image description here

...