Как сохранить информацию учетной записи пользователя в firebase? - PullRequest
0 голосов
/ 28 ноября 2018

Я сделал Google Войти в систему для своих действий в проекте Google, и я хочу сохранить информацию об учетной записи в базе данных Firestore.

Я посмотрел на пример Google, как это сделать (пример здесь , в самом низу под заголовком " Обработка запросов на доступ к данным "), но когда вы на самом делепытаясь развернуть его в 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)

1 Ответ

0 голосов
/ 28 ноября 2018

Я понял, как это сделать, однако это был другой метод, чем действия на примере Google. Если кто-нибудь знает, как это сделать проще или знает, что не так с кодом в ссылке, которую я разместил (если что-нибудь ..) , пожалуйста, дайте мне знать / добавить ответ!

Я решил просто написать в firestore напрямую и поместить его в функцию «Get Signin» (также упоминается в руководстве по диалогу).

Вот функция, которую я использовал, чтобы пользователь подписала также войдите информацию в пожарный магазин:

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.`);
    }
...