我已经对自己在Google项目上的操作进行了Google登录,并且想要将帐户信息保存到Firestore数据库中。
我查看了Google的操作示例(示例here,位于标题为“ 处理数据访问请求”的最底部),但是当您实际尝试部署它时到firebase,您意识到它实际上具有无效的语法(或者至少这就是dialogflow内联编辑器所说的.....)
当我尝试部署此代码时,错误具体说明以下内容:
The deployment of your Cloud Function failed:
Function load error: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/index.js:34
app.intent('Get Sign In', async (conv, params, signin) => {
^
SyntaxError: Unexpected token (
有什么建议吗?
感谢您的帮助!
请注意::我仅使用本教程对 PLUS 说过的代码 我在Google图书馆和履行线上添加了操作(即:
// Other libraries...
const {
dialogflow,
BasicCard,
Permission,
Suggestions,
Carousel,
SignIn
} = require('actions-on-google');
// ** code from tutorial / link **
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)
答案 0 :(得分:1)
我想出了如何做到这一点,但是它与Google示例中的操作是不同的方法。 如果有人知道如何更轻松地完成此操作,或者知道我发布的链接中的代码出了什么问题(如有)。请让我知道/添加答案!
我决定直接直接写入firestore并将其置于“获取登录”功能下(对话框流程的教程中也提到过)。
这是我用来让用户登录并将信息登录到Firestore的功能:
app.intent('Get Signin', (conv, params, signin) => {
if (signin.status === 'OK') {
const payload = conv.user.profile.payload;
conv.ask(`Welcome back ${payload.name}. What can I help you with??`);
const databaseEntry = conv.user.profile.payload; // Account info, loaded to firestore
const accountRef = db.collection('Accounts').doc('account_info'); //How you want the info in firestore to appear
return db.runTransaction(t => {
t.set(accountRef, {entry: databaseEntry});
return Promise.resolve('Write complete');
}).then(doc => {
}).catch(err => {
console.log(`Error writing to Firestore: ${err}`);
});
} else {
conv.close(`To continue, you need to make an account with the app.`);
}