为什么持久存储在我的 google 操作中不起作用?
Why is persistent storage not working in my google action?
我正在尝试跨会话存储 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 家庭中枢调用操作时,它会正确设置我的用户存储数据:
"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": {}
},
我可以看到我的验证是 "VERIFIED",所以这不可能是那个问题。我在此文档中注意到,如果出现以下情况,userStorage 将被清除:
- 设置了语音匹配,没有匹配。
- 用户禁用了个人数据。
也许是其中之一 - 但我不确定在哪里可以查看!
已修复。我没有启用 chrome 历史记录设置!这个线程更详细:
actions on google userStorage only during session
我正在尝试跨会话存储 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 家庭中枢调用操作时,它会正确设置我的用户存储数据:
"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": {}
},
我可以看到我的验证是 "VERIFIED",所以这不可能是那个问题。我在此文档中注意到,如果出现以下情况,userStorage 将被清除:
- 设置了语音匹配,没有匹配。
- 用户禁用了个人数据。
也许是其中之一 - 但我不确定在哪里可以查看!
已修复。我没有启用 chrome 历史记录设置!这个线程更详细: actions on google userStorage only during session