情景就是这样。我想向用户显示一两件商品,但我不想一遍又一遍地展示相同的商品。我不认为Firebase
函数将保留状态,因为每个函数调用将再次激活该函数。那么如何维护状态而不必将其存储在数据库中。
答案 0 :(得分:4)
不,Firebase功能不保留状态。事实上,你甚至不能保证在同一个webhook的调用之间在同一台服务器上运行。
如果您想在对话期间维持状态,但在对话的不同部分之间,您有两种好方法:
如果您使用的是谷歌动作JavaScript库,则可以将数据放入app.data
字段,并在下次调用时在同一位置使用。 (我找不到关于此的文档,但在https://plus.google.com/105458329026934344336/posts/Xr1KPiMPzpH)
由于您正在使用Dialogflow,因此可以将状态作为参数添加到Context。这些参数将保留在上下文中,并且只要上下文处于活动状态,即可将其作为传入上下文的未来Intent使用。
如果您需要在对话之间维护状态,则需要保存该状态,可能与每次请求传递给您的匿名用户ID相关联。
这些方法与您处理用户的Web请求时的方法类似。