Если вы используете Promise в вашем Intent Handler, то вы должны также вернуть это Promise, чтобы диспетчер приложений знал, что происходит асинхронная операция.
У вас есть вторая проблема, когда вы пытаетесь выполнить код (console.log()
) вне разрешения Promise (часть .then()
), но ожидаете значение из этого разрешения. Та часть, если код может выполняться до части внутри then()
. Если вы хотите, чтобы код выполнялся после разрешения Обещания, вы должны включить его в часть then()
.
Так что ваш код может выглядеть примерно так:
app.intent("Default Welcome Intent - yes",(conv)=>{
var db=admin.database(firebaseApp);
var ref= db.ref("xyz/1");
var movie;
var say="before";
return ref.once("value").then(function(snapshot){
movie=snapshot.val();
say="after";
console.log("say is"+say);
});
});