我正在尝试在各个会话中存储UserId,请遵循此处找到的参考:https://developers.google.com/assistant/conversational/save-data
这是我在代码中的实现:
'use strict';
const { dialogflow } = require("actions-on-google");
const functions = require("firebase-functions");
const app = dialogflow();
app.intent('Default Welcome Intent', (conv) => {
conv.user.storage.userId = "bananas";
console.log("Logging the conversation object... ");
console.log(JSON.stringify(conv));
conv.close("Goodbye! ");
});
exports.yourAction = functions.https.onRequest(app);
当我通过Google Home Hub调用该操作时,它将正确设置我的用户存储数据:
"user": {
"raw": {
"locale": "en-US",
"lastSeen": "2020-02-12T14:28:49Z",
"userVerificationStatus": "VERIFIED"
},
"storage": {
"userId": "bananas"
},
"locale": "en-US",
"verification": "VERIFIED",
"permissions": [],
"last": {
"seen": "2020-02-12T14:28:49.000Z"
},
"name": {},
"entitlements": [],
"access": {},
"profile": {}
},
但是,当我在代码中注释掉存储分配并重新调用操作时,用户存储的内容不再存在:
"user": {
"raw": {
"locale": "en-US",
"lastSeen": "2020-02-12T14:31:30Z",
"userVerificationStatus": "VERIFIED"
},
"storage": {},
"locale": "en-US",
"verification": "VERIFIED",
"permissions": [],
"last": {
"seen": "2020-02-12T14:31:30.000Z"
},
"name": {},
"entitlements": [],
"access": {},
"profile": {}
},
我可以看到我的验证是“已验证”,因此不会是这个问题。我在此文档中注意到,如果出现以下情况,userStorage将清除:
所以也许是其中之一-但是我不确定在哪里可以检查!
已修复。我没有启用Chrome历史记录设置!该线程更详细:actions on google userStorage only during session