1. Panoramica
La piattaforma per sviluppatori Assistente Google ti consente di creare software per estendere la funzionalità dell'Assistente Google, un assistente personale virtuale, su più di un miliardo di dispositivi, tra cui smart speaker, telefoni, auto, TV, cuffie e altro ancora. Gli utenti interagiscono con l'assistente per svolgere attività, ad esempio acquistare generi alimentari o prenotare un'auto. In qualità di sviluppatore, puoi utilizzare la piattaforma per sviluppatori dell'assistente per creare e gestire facilmente esperienze di conversazione piacevoli ed efficaci tra gli utenti e il tuo servizio di distribuzione di terze parti.
Questo codelab tratta concetti di livello intermedio per lo sviluppo con l'Assistente Google, Cloud Functions e Cloud Firestore. In questo codelab, creerai un gioco chiamato "Esercizio di ortografia" che utilizza l'Assistente Google per chiedere agli utenti di scrivere le parole.
Cosa creerai
In questo codelab, creerai un gioco sofisticato con le seguenti funzionalità:
- Riceve le risposte di ortografia dall'utente e, a seconda del valore, modifica i prompt di conversazione
- Risponde con suggerimenti relativi all'ortografia della parola, come la definizione o la ripetizione della parola
- Crea un ciclo di gioco in modo che l'utente possa interagire nuovamente con l'assistente dopo aver scritto la parola
Prima di iniziare a creare, puoi interagire con l'azione live sul dispositivo con l'Assistente Google integrato dicendo "Hey Google, parla con Esercizio di ortografia". Il percorso predefinito di questa azione per un utente di ritorno è simile alla seguente interazione:
Al termine di questo codelab, l'azione completata avrà il seguente flusso di conversazione:
Cosa imparerai a fare
- Come interagire con Cloud Firestore
- Come utilizzare gli slot per raccogliere i dati dall'utente
- Come elaborare l'input di un utente e restituire una risposta
- Come utilizzare le condizioni per aggiungere logica a una scena
- Come aggiungere un ciclo di gioco
Che cosa ti serve
I prerequisiti per questo codelab includono:
- Un browser web, come Google Chrome
- Un IDE per scrivere funzioni Cloud.
- Un metodo di pagamento. Questo codelab utilizza Cloud Functions for Firebase, che richiede che il progetto utilizzi il piano tariffario Firebase Blaze ( Scopri di più).
- Un terminale per eseguire comandi shell
- Node.js 10 o versioni successive
2. Ottieni il codice delle funzioni
Clona il repository GitHub dalla riga di comando:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Crea un progetto Firebase e configura la tua app
Crea un progetto Firebase
- Accedi a Firebase.
- Nella console Firebase, fai clic su Aggiungi progetto (o Crea un progetto) e assegna al progetto Firebase il nome
Spelling-Practice
.
- Fai clic sulle varie opzioni di creazione del progetto. Accetta i Termini di Firebase, se richiesto. Salta la configurazione di Google Analytics perché non utilizzerai Analytics per questa app.
Per scoprire di più sui progetti Firebase, consulta Informazioni sui progetti Firebase.
Eseguire l'upgrade al piano tariffario Blaze
Per utilizzare Cloud Functions for Firebase, devi eseguire l'upgrade del progetto Firebase al piano tariffario Blaze, il che significa che dovrai collegare un account di fatturazione Google Cloud al progetto. Per farlo, devi fornire una carta di credito o un altro metodo di pagamento.
Tutti i progetti Firebase, inclusi quelli del piano Blaze, hanno ancora accesso alle quote di utilizzo senza costi per Cloud Functions. I passaggi descritti in questo codelab rientrano nei limiti di utilizzo senza costi. Tuttavia, vedrai piccoli addebiti (circa 0,03 $) da Cloud Storage, che viene utilizzato per ospitare le immagini di compilazione di Cloud Functions.
4. Installa l'interfaccia a riga di comando di Firebase
L'interfaccia a riga di comando di Firebase (interfaccia a riga di comando) consente di eseguire il deployment di Cloud Functions.
Esistono diverse opzioni per l'installazione dell'interfaccia a riga di comando di Firebase a seconda del sistema operativo e del caso d'uso. I passaggi seguenti descrivono l'opzione più comune se utilizzi anche Cloud Functions.
- Assicurati di aver installato npm, che in genere viene fornito insieme a Node.js.
- Installa o esegui l'upgrade dell'interfaccia a riga di comando eseguendo questo comando npm:
$ npm -g install firebase-tools
- Verifica che l'interfaccia a riga di comando sia stata installata correttamente eseguendo:
$ firebase --version
Assicurati che la versione dell'interfaccia a riga di comando di Firebase sia 9.0.0 o successiva, in modo che abbia tutte le funzionalità più recenti richieste per Cloud Functions. In caso contrario, esegui npm install -g firebase-tools per eseguire l'upgrade come mostrato sopra.
- Autorizza l'interfaccia a riga di comando di Firebase eseguendo:
$ firebase login
- Dalla directory spelling-functions-start, configura l'interfaccia a riga di comando di Firebase per utilizzare il tuo progetto Firebase. Esegui questo comando, seleziona il tuo ID progetto e segui le istruzioni. Quando richiesto, puoi scegliere qualsiasi alias, ad esempio
codelab
.
$ firebase use --add
5. La directory Functions
Ora aggiungerai funzionalità utilizzando l'SDK Firebase per Cloud Functions per creare il backend del gioco Spelling Practice.
Cloud Functions ti consente di avere codice che viene eseguito nel cloud senza dover configurare un server. Questo codelab ti mostrerà come creare funzioni che reagiscono agli eventi di Firebase Authentication, Cloud Storage e Firebase Realtime Database. Iniziamo con l'autenticazione.
Quando utilizzi l'SDK Firebase per Cloud Functions, il codice delle funzioni si trova nella directory functions
(per impostazione predefinita). Per semplificare le cose, abbiamo già creato il file functions/index.js
in cui sarà inserito il tuo codice. Controlla pure la directory functions
prima di proseguire.
$ cd functions $ ls
Il codice delle funzioni è anche un'app Node.js e, pertanto, ha bisogno di un package.json
che fornisca alcune informazioni sull'app e elenchi le dipendenze.
Se non hai dimestichezza con Node.js, ti aiuterà a conoscerlo meglio prima di continuare il codelab.
Il file package.json
elenca già due dipendenze obbligatorie: l'SDK Firebase per Cloud Functions e l'SDK Admin Firebase. Per installarli localmente, esegui npm install
dalla directory functions
:
$ npm install
Diamo ora un'occhiata al file index.js
:
index.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here. // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Importa prima i moduli richiesti, poi scrivi quattro funzioni al posto dei TODO. Vai al passaggio successivo del codelab per importare i moduli.
6. Importa i moduli richiesti
Questo codelab richiede tre moduli.
- Il modulo
firebase-functions
ci consente di scrivere i trigger per le nostre funzioni Cloud Functions - Il modulo
firebase-admin
ci consente di utilizzare la piattaforma Firebase su un server con accesso amministrativo, ad esempio per scrivere in Cloud Firestore. - La libreria di evasione degli ordini Node.js di Actions SDK completa i gestori dell'SDK Actions per l'Assistente Google.
- Installa l'SDK Actions eseguendo questo comando npm:
$ npm install @assistant/conversation
- Nel file
index.js
, sostituisci il primo TODO con quanto segue.
Queste modifiche importano ciascuno dei moduli richiesti.
Inoltre, l'SDK Firebase Admin può essere configurato automaticamente quando viene eseguito il deployment in un ambiente Cloud Functions o in un altro contenitore Google Cloud. Questo è ciò che accade quando chiamiamo admin.initializeApp();
nelle modifiche riportate di seguito.
index.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // Import the Actions SDK const {conversation} = require('@assistant/conversation'); const https = require('https'); const app = conversation(); const cors = require('cors')({origin: true}); // Import the Firebase SDK for Cloud Functions. const functions = require('firebase-functions'); // Import and initialize the Firebase Admin SDK. const admin = require('firebase-admin'); admin.initializeApp(); // To access Cloud Firestore const db = admin.firestore(); // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the shuffleWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Ora aggiungiamo la logica di business utilizzando le funzioni per supportare le Azioni dell'assistente.
7. Creazione funzioni
Ottieni le definizioni delle parole e scrivile su Cloud Firestore
Utilizzerai l'API pubblica dictionaryapi.dev
per ricevere le definizioni delle parole.
Nel file index.js
, sostituisci il TODO per getWordDetailsFromDictionaryAPI
con quanto segue:
index.js
// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service // Function uses service provided by https://dictionaryapi.dev/ async function getWordDetailsFromDictionaryAPI(word) { let responseData=""; let req = https.request({ host: 'api.dictionaryapi.dev', port: 443, path:'/api/v2/entries/en/' + word, method:'GET' }, (res) => { res.setEncoding('utf8'); res.on('data', d => { responseData+=d; }) res.on('end',function(){ let object = JSON.parse(responseData) const wordListRef = db.collection('wordlist'); wordListRef.doc(object[0].word).set( object[0] ); return responseData; }); }); req.end(); }
Aggiungi un trigger di Cloud Firestore
A questo punto, crea una funzione Cloud Functions che si attiva ogni volta che viene creato un nuovo documento in Cloud Firestore. Chiamerà l'API dictionaryapi.dev
per ottenere le definizioni delle parole tramite la funzione getWordDetailsFromDictionaryAPI
che abbiamo scritto poco sopra.
Nel file index.js
, sostituisci il TODO per createSpellingPracticeWord
con quanto segue:
index.js
// Trigger di Firestore che recupera le definizioni delle parole tramite getWordDetailsFromDictionaryAPI per ogni nuovo documento Firestore
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Ottieni un elenco di parole per il gioco
Puoi scrivere una funzione Cloud che recupera un elenco di parole per l'esercizio di ortografia da Cloud Firestore per l'assistente. A questo scopo, utilizziamo l'handler dell'app.
Nel file index.js
, sostituisci TODO per getSpellingWordList
con quanto segue.
L'aggiunta di questa funzione al comando speciale app.handle
è un modo per renderla accessibile dall'assistente.
index.js
// Store the list of spelling words in Assistant session app.handle('getSpellingWordList', conv => { const wordListRef = db.collection('wordlist').limit(50); const snapshot = wordListRef; if (snapshot.empty) { console.log('No matching documents.'); return; } VocabularyList = [] return snapshot.get().then(snapshot => { snapshot.forEach(doc => { if (doc.data().word) { let definition = 'unknown'; let audio = 'unknown'; try { if(doc.data().hasOwnProperty('meanings')) { if(doc.data().meanings[0].hasOwnProperty('definitions')) { definition = doc.data().meanings[0].definitions[0].definition; } } if(doc.data().hasOwnProperty('phonetics')) { if(doc.data().phonetics.length > 0) audio = doc.data().phonetics[0].audio; } } catch (error) { console.log(error); } let obj = { word: doc.data().word, answer: doc.data().word.split("").join(" "), definition: definition, audio: audio } VocabularyList.push(obj); } // Shuffle the array let currentIndex = VocabularyList.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = VocabularyList[currentIndex]; VocabularyList[currentIndex] = VocabularyList[randomIndex]; VocabularyList[randomIndex] = temporaryValue; } conv.session.params.vocabWord = VocabularyList; conv.session.params.vocabWordIndex = 0; }); }); })
Ricevere una parola dalla sessione dell'assistente
Puoi scrivere una funzione Cloud che restituisce la parola di ortografia successiva dall'elenco di parole.
Nel file index.js
, sostituisci TODO per getSpellingWord
con quanto segue:
index.js
// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response app.handle('getSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { conv.session.params.vocabWordIndex+=1; const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Attiva il gioco per ripetere la parola
Puoi scrivere una funzione Cloud Functions che ripete la parola attuale per il gioco.
Nel file index.js
, sostituisci TODO per repeatSpellingWord
con quanto segue:
index.js
// Returns current spelling word app.handle('repeatSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Trova la definizione della parola
Puoi scrivere una funzione Cloud Functions che fornisca la definizione della parola attuale del gioco.
Nel file index.js
, sostituisci il TODO per definitionOfSpellingWord
con quanto segue:
index.js
// Returns spelling word definition from Assistant session parameter app.handle('definitionOfSpellingWord', conv => { conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition); });
Controllare la risposta ortografico dell'utente
Puoi scrivere una funzione Cloud che verifichi la risposta dell'utente sull'ortografia della parola corrente del gioco.
Nel file index.js
, sostituisci il TODO per verifySpellingWord
con quanto segue:
index.js
// Verifies user spelling response app.handle('verifySpellingWord', conv => { try { userResponse = conv.intent.params.userresponse.resolved.join(""); if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) { conv.add('You are correct. Say next to continue.'); } else { conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.'); } } catch (error) { conv.add('Sorry. I did not understand your response' ); } }); exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
Esegui il deployment di tutte le funzioni
Le tue funzioni Cloud Functions saranno attive solo dopo che avrai eseguito il deployment in Firebase.
Dalla directory principale della directory spelling-functions-start
, esegui questo comando:
$ firebase deploy --only functions
Questo è l'output della console che dovresti vedere:
i deploying functions i functions: ensuring necessary APIs are enabled... ⚠ functions: missing necessary APIs. Enabling now... i env: ensuring necessary APIs are enabled... ⚠ env: missing necessary APIs. Enabling now... i functions: waiting for APIs to activate... i env: waiting for APIs to activate... ✔ env: all necessary APIs are enabled ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... i functions: packaged functions (X.XX KB) for uploading ✔ functions: functions folder uploaded successfully i starting release process (may take several minutes)... i functions: creating function createSpellingPracticeWord(us-central1)... ✔ functions[createSpellingPracticeWord(us-central1)]: Successful create operation. i functions: creating function ActionsOnGoogleFulfillment(us-central1)... ✔ functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation. ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview
Prendi nota dell'URL dell'endpoint HTTP della funzione ActionsOnGoogleFulfillment per utilizzarlo in seguito. Per ottenere l'endpoint, apri la console Firebase e poi fai clic sul progetto ortografia-pratica. Apri la dashboard di Functions per visualizzare l'endpoint delle funzioni.
Hai completato l'aggiunta di tutte le funzioni richieste. Ora passiamo alla configurazione di Cloud Firestore.
8. Attiva Cloud Firestore
Devi attivare Cloud Firestore.
Nella sezione Crea della console Firebase, fai clic su Firestore. Quindi, fai clic su Crea database.
L'accesso ai dati in Cloud Firestore è controllato dalle regole di sicurezza. Per iniziare, devi impostare alcune regole di base sui dati. Fai clic su Firestore e poi nella scheda Regole della console Firebase, aggiungi le seguenti regole e poi fai clic su Pubblica.
Le seguenti regole limitano l'accesso ai dati agli utenti che hanno eseguito l'accesso, impedendo agli utenti non autenticati di leggere o scrivere.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // // WARNING: These rules are insecure! We will replace them with // more secure rules later in the codelab // allow read, write: if request.auth != null; } } }
9. Aggiungi dati relativi alle parole ortografiche a Cloud Firestore
In questo passaggio, scriverai i dati delle parole con errori ortografici in Cloud Firestore per poter generare un elenco di parole per l'assistente (e per il gioco).
I dati di Cloud Firestore sono strutturati in raccolte, documenti, campi e sottoraccolte. Ogni parola del gioco verrà archiviata come documento autonomo in una raccolta di primo livello denominata wordlist
. Per ogni nuovo documento nella raccolta Firestore, verrà attivata la funzione createSpellingPracticeWord per recuperare i dettagli della parola dal servizio dell'API Dictionary.
Crea una raccolta Cloud Firestore
- Nella console Firebase, vai alla sezione Cloud Firestore.
- Fai clic su + Avvia raccolta.
- Nella casella di testo ID raccolta, inserisci
wordlist
e fai clic su Avanti.
A questo punto, creeremo un documento per una parola: agreement
- Nella casella di testo ID documento, inserisci
agreement
. - Nella casella di testo Campo, inserisci
word
e nella casella di testo Valore inserisciagreement
. - Fai clic su Salva.
Quando aggiungi questo documento a Cloud Firestore, viene attivata la funzione createSpellingPracticeWord per recuperare i dettagli della definizione della parola. Aggiungi altre parole (ad esempio: stupore, auto, vero, racconta, migliore, tragitto giornaliero e così via) creando un nuovo documento per ogni parola.
10. Configurare l'Assistente Google
Le sezioni seguenti descrivono come configurare l'ambiente di sviluppo dell'Assistente Google e creare il progetto Actions.
Verifica le impostazioni delle autorizzazioni Google
Per testare l'azione creata in questo codelab, devi abilitare le autorizzazioni necessarie affinché il simulatore possa accedere all'azione. Per attivare le autorizzazioni, procedi nel seguente modo:
- Visita la pagina Gestione attività.
- Accedi con il tuo Account Google, se non l'hai ancora fatto.
- Attiva le seguenti autorizzazioni:
- Attività web e app
- In Attività web e app, seleziona la casella di controllo accanto a Includi la cronologia di Chrome e le attività svolte su siti, app e dispositivi che usano i servizi Google.
crea un progetto Actions
Il progetto Actions è un contenitore per l'Azione. Per creare il tuo progetto Actions per questo codelab, segui questi passaggi:
- Apri la console Azioni.
- Fai clic su Nuovo progetto.
- Accetta i Termini di servizio
- Digita o seleziona l'elemento
spelling-practice-codelab
che hai creato utilizzando la console Firebase. Il nome è per riferimento interno. in seguito potrai impostare un nome esterno per il progetto.
- Fai clic su Importa progetto.
- Nella schermata Che tipo di azione vuoi creare?, seleziona la scheda Personalizzata.
- Fai clic su Avanti.
- Seleziona la scheda Progetto vuoto.
- Fai clic su Inizia a creare.
- Inserisci Esercizio di ortografia come nome visualizzato e fai clic su Salva.
Gli utenti avviano la conversazione con l'azione mediante una chiamata. Ad esempio, gli utenti possono richiamare l'azione dicendo una frase come "Hey Google, parla con Spelling Practice", dove Pratica ortografica è il nome visualizzato.
L'azione deve avere un nome visualizzato se vuoi eseguirne il deployment in produzione. Tuttavia, per testarla, non è necessario definire il nome visualizzato. In alternativa, puoi utilizzare la frase "Parla con la mia app di prova" nel simulatore per richiamare l'azione.
Configura fulfillment
Devi connetterti all'assistente ai gestori di eventi per le funzioni Cloud Functions che hai scritto e di cui hai eseguito il deployment in precedenza in questo codelab.
Per configurare l'evasione degli ordini:
- Fai clic su Webhook nella barra di navigazione laterale.
- Seleziona Endpoint https come opzione di evasione degli ordini:
- Inserisci l'URL dell'endpoint della funzione nella casella di testo Endpoint HTTPs, quindi fai clic su Salva.
Nella sezione successiva, personalizzerai il prompt per l'invocazione principale nella console di Actions.
Configurare l'invocazione principale
Devi modificare l'invocazione principale per definire cosa succede dopo che un utente invoca la tua azione.
Per impostazione predefinita, lo Strumento per la creazione di azioni fornisce un prompt generico quando viene attivata l'invocazione ("Inizia a creare la tua azione definendo l'invocazione principale").
Per modificare la richiesta che l'azione rimanda all'utente quando richiama l'azione, procedi nel seguente modo:
- Fai clic su Richiesta principale nel riquadro di navigazione.
- Seleziona
Call your webhook
e aggiungi il nome del gestore di eventigetSpellingWordList
nella casella di testo. - Nell'editor di codice, sostituisci il testo nel campo
speech
con il seguente messaggio di benvenuto:Welcome to Spelling Practice
Nota:puoi utilizzare la formattazione YAML o JSON per modificare i prompt.
- Fai clic su Salva.
Testa l'invocazione principale nel simulatore
La console di Actions fornisce uno strumento web per testare l'azione chiamato simulatore. L'interfaccia simula i dispositivi hardware e le relative impostazioni, in modo da poter interagire con l'azione come se fosse in esecuzione su uno smart display, uno smartphone, uno speaker o KaiOS.
Per testare la chiamata principale dell'azione nel simulatore:
- Nella barra di navigazione in alto, fai clic su Test per accedere al simulatore.
- Per richiamare l'azione nel simulatore, digita
Talk to Spelling Practice
nel campo di immissione in alto a sinistra e premi Invio sulla tastiera.
Quando attivi l'invocazione principale dell'azione, l'assistente risponde con il messaggio di benvenuto personalizzato. A questo punto, la conversazione termina dopo che l'assistente ha risposto con un saluto.
Visualizza log eventi
Nella scheda Test, il riquadro a destra mostra i log eventi, che mostrano la cronologia delle conversazioni sotto forma di log eventi. Ogni log eventi mostra gli eventi che si sono verificati durante il turno della conversazione. Per visualizzare il log eventi, fai clic sull'icona grigia prima dell'evento.
Attualmente l'azione ha un log eventi che mostra sia l'input dell'utente ("Parla con l'attività ortografica") sia la risposta dell'azione. Lo screenshot seguente mostra il log eventi dell'azione:
11. Creare la conversazione per l'esercizio di ortografia
Ora che hai definito cosa succede dopo che un utente richiama l'azione, puoi creare il resto della conversazione dell'azione. La funzionalità Esercizio di ortografia si articola in quattro scene e devi attivare ognuna di esse prima di avviarla. Il modo più comune per attivare una scena è configurare l'azione in modo che, quando un utente corrisponde a un intent utente all'interno di una scena, questo intent attivi la transizione a un'altra scena e la attivi.
Transizione dalla chiamata principale all'inizio della scena
In questa sezione creerai una nuova scena chiamata Start
, che invia un prompt all'utente chiedendogli se vuole iniziare a riprodurre Pratica di ortografia. Aggiungi anche una transizione dall'invocazione principale alla nuova scena Start
.
Per creare questa scena e aggiungere una transizione, segui questi passaggi:
- Fai clic su Sviluppo nella barra di navigazione in alto. Quindi, fai clic su Chiamata principale nel riquadro di navigazione a sinistra.
- Nella sezione Transizione a destra, fai clic sul menu a discesa e poi digita
Start
nel campo di testo.
- Fai clic su Aggiungi. Viene creata una scena chiamata
Start
e l'azione deve passare alla scenaStart
dopo che l'azione ha inviato la richiesta di benvenuto all'utente. - Fai clic su Scene nel riquadro di navigazione a sinistra per visualizzare l'elenco di scene.
- In Scene, fai clic su Avvia per vedere la scena
Start
. - Fai clic su + nella sezione All'invio della scena
Start
. - Seleziona Invia prompt.
- Sostituisci la frase nel campo
speech
(Enter the response that users will see or hear...
) con una domanda da porre all'utente:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
I chip di suggerimento offrono all'utente suggerimenti cliccabili che l'azione elabora come input dell'utente. In questa sezione, aggiungerai chip di suggerimenti che vengono visualizzati sotto il prompt appena configurato (Do you want to play
Spelling Practice
?
) per supportare gli utenti su dispositivi con schermi.
Per aggiungere chip di suggerimento al prompt della scena Start
:
- Nella scena
Start
, fai clic sui suggerimenti sotto l'editor di codice. Questa azione aggiunge un singolo chip di suggerimento. - Nel campo
title
, sostituisciSuggested Response
con'Yes'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'No'
e'Help with Phonetics'
. Il tuo codice dovrebbe essere simile al seguente snippet: - Fai clic su Salva.
Testare l'azione nel simulatore
A questo punto, l'Azione dovrebbe passare dalla chiamata principale alla scena Inizio e chiedere all'utente se vuole continuare. I chip di suggerimento dovrebbero essere visualizzati anche nella visualizzazione simulata.
Per testare l'azione nel simulatore:
- Nella barra di navigazione, fai clic su Test per accedere al simulatore.
- Per testare l'Azione nel simulatore, digita
Talk to Spelling Practice
nel campo di immissione. - Premi Invio. L'azione dovrebbe rispondere con il prompt
Main invocation
e il prompt aggiunto per la scenaStart
, "Welcome to Spelling Practice. Usa l'alfabeto fonetico per scrivere la parola. Ad esempio alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?".
Questo screenshot mostra questa interazione:
- Fai clic sul chip di suggerimento
Yes
,No
oHelp with Phonetics
per rispondere al prompt. Puoi anche dire "Sì" o "No" o "Aiutami con la fonetica" o inserireYes
oNo
oHelp with Phonetics
nel campo Input.
Quando rispondi al prompt, l'azione risponde con un messaggio che indica che non è in grado di comprendere l'input: "Non ho capito. Puoi riprovare?" Poiché non hai ancora configurato l'Azione in modo da comprendere e rispondere all'input "Sì" o "No", l'Azione associa l'input a un intent NO_MATCH
.
Per impostazione predefinita, l'intent di sistema NO_MATCH
fornisce risposte generiche, ma puoi personalizzarle per indicare all'utente che non hai compreso il suo input. L'assistente termina la conversazione dell'utente con l'azione dopo che non è in grado di trovare una corrispondenza per tre volte con l'input dell'utente.
Aggiungi intent di rifiuto e di fonetica
Ora che gli utenti possono rispondere alla domanda che pone l'azione, puoi configurarla per comprendere le risposte ("Sì", "No" o "Aiuto per la fonetica"). Nelle sezioni seguenti, crei intent dell'utente che vengono associati quando l'utente dice "Sì" o "No" oppure "Guida per la fonetica" e aggiungi questi intent alla scena Start
. Utilizzeremo l'intent di sistema yes
e creeremo altri intent.
Crea intent no
A questo punto, devi creare l'intent no
per capire l'utente e rispondere quando non vuole giocare. Per creare questa intenzione:
- Fai clic su Sviluppa nel riquadro di navigazione.
- Fai clic su Intent personalizzati nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic sul segno + (Più) alla fine dell'elenco di intent. Assegna un nome al nuovo intento
no
e premi Invio. - Fai clic su no per aprire la pagina dell'intent
no
. - Nella sezione Aggiungi frasi di addestramento, fai clic nella casella di testo Inserisci frase e inserisci le seguenti frasi:
No
N
I don't want
nope
- Fai clic su Salva.
Aggiungi l'intent no
a Start
scena
Ora l'azione può capire quando un utente dice "no" o qualcosa di simile a "no", ad esempio "no". Devi aggiungere l'intent dell'utente no
alla scena Start
perché l'utente sta rispondendo al prompt Start
("Welcome to Spelling Practice. Usa l'alfabeto fonetico per scrivere la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").
Per aggiungere questo intent per la scena Start
, segui questi passaggi:
- Fai clic sulla scena Inizio nella navigazione.
- Fai clic sul + (segno Più) nella scena
Start
accanto a Gestione delle intenzioni dell'utente. - Nella sezione Intent, seleziona no nel menu a discesa.
- Fai clic su Invia prompt e aggiorna il campo
speech
con il seguente testo:Good Bye
.
Il codice nell'editor dovrebbe essere simile al seguente snippet:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Nella sezione Transizione, seleziona Termina conversazione dal menu a discesa.
- Fai clic su Salva.
Testa no
intent nel simulatore
A questo punto, l'azione comprende quando l'utente non vuole giocare e restituisce la risposta appropriata.
Per testare questo intent nel simulatore:
- Nella barra di navigazione, fai clic su Prova.
- Digita
Talk to Spelling Practice
nel campo di immissione e premiEnter
. - Digita
No
nel campo Input e premi Invio. In alternativa, fai clic sul chip Nessun suggerimento.
Aggiungi l'intent di sistema YES
alla scena Start
Ora aggiungeremo l'intent SYSTEM "YES" alla scena Start
, dato che l'utente risponde sì al prompt Start
("Welcome to Spelling Practice. Usa l'alfabeto fonetico per scrivere la parola. Ad esempio alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").
Per aggiungere questa intenzione dell'utente alla scena Start
:
- Fai clic su Avvia scena nel menu di navigazione.
- Fai clic sul + (segno Più) nella scena
Start
accanto a Gestione dell'intenzione dell'utente. - In Tutti gli intent di sistema, seleziona SÌ nel menu a discesa degli intent.
- Fai clic su Chiama il webhook e aggiorna la casella di testo
event handler
con la funzione che hai creato in precedenza:getSpellingWordList
- Nella sezione Transizione, fai clic sul menu a discesa e seleziona Termina conversazione.
- Fai clic su Salva.
Testa l'intento YES
nel simulatore
A questo punto, l'Azione capisce quando l'utente vuole giocare e restituisce la risposta appropriata.
Per testare questo intent nel simulatore:
- Nella barra di navigazione, fai clic su Test.
- Per testare l'azione nel simulatore, digita
Talk to Spelling Practice
nel campo Input e premi Invio. - Digita
Yes
nel campo Input e premi Invio. In alternativa, fai clic sul chip di suggerimentoYes
.
L'azione recupera un elenco di tutte le parole per esercitarsi con l'ortografia e le memorizza nella sessione. L'Azione termina quindi la sessione perché hai selezionato la transizione End conversation
per l'intent YES
.
Crea intent Phonetics
Per creare l'intent Phonetics
:
- Fai clic su Sviluppa nel riquadro di navigazione.
- Fai clic su Intent personalizzati nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic sul segno + (Più) alla fine dell'elenco di intent. Assegna al nuovo intent il nome
phonetics
e premiEnter
. - Fai clic sull'intent
phonetics
per aprire la pagina dell'intentphonetics
. - Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
how do I spell words
phonetics
help me with phonetics
phonetic alphabet
- Fai clic su Salva.
Aggiungi l'intent phonetics
a Start
scena
Ora l'azione può capire quando un utente esprime un'intenzione "fonetica". Puoi aggiungere l'intent utente phonetics
alla scena Start
, poiché l'utente sta rispondendo al prompt Start
("Ti diamo il benvenuto nell'esercizio di ortografia. Usa l'alfabeto fonetico per scrivere la parola. Ad esempio alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").
Per aggiungere questo intent utente alla scena Start
:
- Fai clic sulla scena Inizio nella navigazione.
- Fai clic sul segno Più (+) nella scena
Start
accanto a Gestione delle intenzioni dell'utente. - Seleziona fonetica nel menu a discesa dell'intenzione.
- Nella sezione Transizione, fai clic sul menu a discesa e seleziona Termina conversazione.
- Fai clic su Salva.
Passare dalla scena Inizia alla scena Ortografia
In questa sezione creerai una nuova scena chiamata Ortografia, che invia un prompt all'utente per scrivere la parola utilizzando l'alfabeto fonetico.
Per creare questa scena e aggiungere una transizione, segui questi passaggi:
- Fai clic su Sviluppo nella barra di navigazione in alto. Poi, fai clic sulla scena Inizia nel riquadro di navigazione a sinistra.
- Nella sezione Gestione dell'intenzione dell'utente, fai clic su
when actions.intent.YES is matched
e a destra, nella sezione Transizione, fai clic sul menu a discesa e digitaSpelling
nel campo di testo. - Fai clic su Aggiungi. Viene creata una scena chiamata
Spelling
e all'azione viene chiesto di passare alla scenaSpelling
dopo la corrispondenza con l'intent YES. - Espandi Scene nel menu di navigazione a sinistra per visualizzare l'elenco delle scene.
- Nella sezione Scene, fai clic su Ortografia per visualizzare la scena
Spelling
. - Fai clic su + nella sezione All'inserimento della scena
Spelling
. - Fai clic su Chiama il tuo webhook e inserisci getSpellingWord nella casella di testo del gestore eventi.
- Seleziona Invia prompt.
- Sostituisci la frase nel campo
speech
(Enter the response that users will see or hear...
) con {}. Il prompt effettivo verrà compilato dall'webhook.
I chip di suggerimento offrono all'utente suggerimenti cliccabili che l'azione elabora come input dell'utente.
Per aggiungere chip di suggerimento al prompt della scena Spelling
, segui questi passaggi:
- Nella scena
Spelling
, fai clic sui suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento. - Nel campo
title
, sostituisciSuggested Response
con'Repeat'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'Skip'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'Quit'
. Il codice dovrebbe avere il seguente aspetto: - Fai clic su Salva.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Crea intent Repeat
Per creare l'intent repeat
:
- Fai clic su Sviluppo nel menu di navigazione.
- Fai clic su Intent personalizzati nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic su + (segno più) alla fine dell'elenco di intent. Assegna un nome al nuovo intento
repeat
e premiEnter
. - Fai clic sull'intent
repeat
per aprire la pagina dell'intentdefinition
. - Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
one more time please
say the word again
repeat the word
tell me again
repeat
- Fai clic su Salva.
Aggiungi l'intenzione repeat
alla scena Spelling
Ora l'azione può capire quando un utente esprime un'intenzione di "ripetizione". Puoi aggiungere l'intent utente repeat
alla scena Spelling
, poiché l'utente sta rispondendo al prompt Spelling
("Scrive la parola usando l'alfabeto fonetico").
Per aggiungere questo intent utente alla scena Spelling
:
- Fai clic sulla scena Ortografia nella barra di navigazione.
- Fai clic sul + (segno più) nella scena
Spelling
accanto a Gestione dell'intenzione dell'utente. - Seleziona ripeti nel menu a discesa dell'intenzione.
- Seleziona Chiama il webhook e inserisci repeatSpellingWord nella casella di testo del gestore di eventi per ottenere la definizione della parola.
- Seleziona Invia prompt.
- Sostituisci la frase nel campo
speech
(Enter the response that users will see or hear...
) con "". Il prompt effettivo verrà compilato dal webhook.
Aggiungi chip di suggerimento a "Quando viene trovata una corrispondenza per Ripeti"
- In "Quando viene trovata una corrispondenza per Ripeti" in Gestione dell'intenzione dell'utente, fai clic su suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento.
- Nel campo
title
, sostituisciSuggested Response
con'Skip'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'Quit'
. Il codice dovrebbe avere il seguente aspetto:
suggestions: - title: 'Skip' - title: 'Quit'
- Fai clic su Salva.
Crea intent definition
Per creare l'intent definition
:
- Fai clic su Sviluppo nel menu di navigazione.
- Fai clic su Intent personalizzati nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic sul segno + (Più) alla fine dell'elenco di intent. Assegna al nuovo intent il nome
definition
e premiEnter
. - Fai clic sull'intent
definition
per aprire la pagina dell'intentdefinition
. - Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
I would like to know the definition
tell me the definition
what does it mean
meaning
definition
what is the definition?
- Fai clic su Salva.
Aggiungi l'intent definition
a Spelling
scena
Ora l'azione può capire quando un utente esprime un'intenzione di "definizione". Puoi aggiungere l'intent utente definition
alla scena Spelling
, poiché l'utente sta rispondendo al prompt Spelling
("Scrive la parola usando l'alfabeto fonetico").
Per aggiungere questo intent utente alla scena Spelling
:
- Fai clic sulla scena Ortografia nella barra di navigazione.
- Fai clic sul + (segno più) nella scena
Spelling
accanto a Gestione dell'intenzione dell'utente. - Seleziona definizione nel menu a discesa dell'intenzione.
- Seleziona Chiama il tuo webhook e inserisci definitionOfSpellingWord nella casella di testo del gestore eventi per ottenere la definizione della parola.
- Seleziona Invia prompt.
- Sostituisci la frase nel campo
speech
(Enter the response that users will see or hear...
) con "'". Il prompt effettivo verrà compilato dal webhook.
Aggiungere chip di suggerimento alla risposta dell'webhook
- Nella scena
Start
, fai clic su suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento. - Nel campo
title
, sostituisciSuggested Response
con'Skip'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'Quit'
. Il codice dovrebbe avere il seguente aspetto:
suggestions: - title: 'Skip' - title: 'Quit'
- Fai clic su Salva.
Crea intent skip
Per creare l'intent skip
:
- Fai clic su Sviluppa nel riquadro di navigazione.
- Fai clic su Intent nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic sul segno + (segno più) alla fine dell'elenco di intent. Assegna un nome al nuovo intento
skip
e premiEnter
. - Fai clic sull'intent
skip
per aprire la pagina dell'intentskip
. - Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
next word
go next
next
skip
skip word
- Fai clic su Salva.
Aggiungi l'intenzione Skip
alla scena Spelling
Ora l'azione è in grado di capire quando un utente esprime un'intenzione "skip". Puoi aggiungere l'intent dell'utente di skip
alla scena Spelling
, poiché l'utente sta rispondendo al prompt di Spelling
("Fai lo spelling della parola usando l'alfabeto fonetico").
Per aggiungere questa intenzione dell'utente alla scena Spelling
:
- Fai clic sulla scena Ortografia nel riquadro di navigazione.
- Fai clic sul + (segno più) nella scena
Spelling
accanto a Manuale dell'intent dell'utente. - Seleziona Salta nel menu a discesa dell'intenzione.
- Nella sezione Transizione a destra, fai clic sul menu a discesa e seleziona
Spelling
.
- Fai clic su Salva.
Crea intent quit
Per creare l'intent Quit
:
- Fai clic su Sviluppo nel menu di navigazione.
- Fai clic su Intent nel riquadro di navigazione per aprire l'elenco degli intent.
- Fai clic sul segno + (Più) alla fine dell'elenco di intent. Assegna un nome al nuovo intento
Quit
e premiEnter
. - Fai clic sull'intent
Quit
per aprire la pagina dell'intent di definizione. - Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
I quit
Goodbye
Cancel
Exit
Quit
- Fai clic su Salva.
Aggiungi l'intenzione Quit
alla scena Spelling
Ora l'Azione è in grado di capire quando un utente esprime un'intenzione "quit". Puoi aggiungere l'intent utente quit
alla scena Spelling
, poiché l'utente sta rispondendo al prompt Spelling
("Scrive la parola usando l'alfabeto fonetico").
Per aggiungere questo intent utente alla scena Spelling
:
- Fai clic sulla scena Ortografia nella barra di navigazione.
- Fai clic sul + (segno più) nella scena
Spelling
accanto a Gestione dell'intenzione dell'utente. - Seleziona quit nel menu a discesa dell'intenzione.
- Nella sezione Transizione a destra, fai clic sul menu a discesa e seleziona
End conversation
. - Fai clic su Salva.
Crea tipo phonetic_alphabet
In questa sezione creerai un nuovo tipo chiamato phonetic_alphabet
, che specifica le opzioni dell'alfabeto fonetico che gli utenti possono scegliere di scrivere la parola. Puoi anche definire alcuni sinonimi per queste opzioni nel caso in cui un utente dica qualcosa di simile. In una sezione successiva, aggiungi il tipo phonetic_alphabet
a uno slot per specificare che vuoi ottenere la risposta dell'utente.
Per creare il tipo phonetic_alphabet
:
- Fai clic su Sviluppa nel riquadro di navigazione.
- Fai clic sul + (segno Più) in Tipi.
- Digita
phonetic_alphabet
e premiEnter
. - Fai clic su
phonetic_alphabet
per aprire le opzioni. - Nella sezione Quali tipi di valori supporterà questo tipo?, seleziona l'opzione Parole e sinonimi.
- Inserisci le seguenti voci e i valori corrispondenti nella sezione Aggiungi voci:
A | alpha, mela, amsterdam |
b | bravo, butter, baltimora |
C | charlie, gatto, casablanca |
g | delta, cane, danimarca |
s | echo, edward, edison |
f | foxtrot, volpe, florida |
G | golf, george, gallipoli |
h | hotel, harry, avana |
i | india, inchiostro, italia |
G | juliette, johnny, gerusalemme |
k | chilo, re, chilogrammo |
L | lima, love, london |
m | mike, money, madagascar |
n | novembre, new york, nancy |
O | oscar, arancia, oslo |
P | papa, paris, peter |
q | quebec, queen |
r | romeo, roma, roberto |
s | sierra, sugar, santiago |
t | tango, tommy, tripoli |
S | uniforme, ombrello, zio |
V | victor, vinegar, Valencia |
M | whiskey, william, washton |
x | raggi X |
y | yankee, giallo, yorker |
Z | zulu, zebra, zurich |
La tabella chiave-valore dovrebbe avere il seguente aspetto:
- Fai clic su Salva.
Configurare il riempimento degli slot
Successivamente, devi configurare il completamento degli slot nella scena Ortografia. Per configurare la logica di riempimento degli slot:
- Fai clic sulla scena Ortografia nel riquadro di navigazione.
- Fai clic sul + (segno Più) nella scena
Spelling
per Completamento delle caselle. - Nel campo Inserisci il nome dell'area, aggiungi
userresponse
come nome dell'area. - Nel menu a discesa Seleziona tipo, seleziona phonetic_alphabet come tipo di slot.
- Seleziona Questo slot accetta un elenco di valori
- Seleziona Questo slot è obbligatorio.
- Seleziona l'opzione Personalizza il writeback del valore dello slot e inserisci la risposta dell'utente nella casella di testo del parametro della sessione.
- Fai clic su Salva.
Aggiungi condizione alla schermata Spelling
Per aggiungere una condizione alla scena Spelling
, segui questi passaggi:
- Fai clic sulla scena Ortografia nel riquadro di navigazione.
- Fai clic sul + (segno più) nella scena
Spelling
accanto a Condizione. - Inserisci
scene.slots.status == "FINAL"
come condizione - Seleziona Call your webhook (Chiama il webhook) e inserisci verifySpellingWord nella casella di testo del gestore di eventi per verificare la risposta dell'utente.
- Seleziona Invia prompt.
- Sostituisci la frase nel campo
speech
(Enter the response that users will see or hear...
) con {}. Il prompt effettivo verrà compilato dall'webhook.
Aggiungere chip di suggerimento alla risposta dell'webhook
- Nella scena
Start
, fai clic su suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento. - Nel campo
title
, sostituisciSuggested Response
con'Next'
. - Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento denominato
'Quit'
.Il tuo codice dovrebbe essere simile al seguente snippet:
suggestions: - title: 'Next' - title: 'Quit'
- Fai clic su Salva.
12. Provare l'esercizio di ortografia nel simulatore
Per testare l'azione nel simulatore:
- Nella barra di navigazione, fai clic su Test per accedere al simulatore.
- Per testare l'Azione nel simulatore, digita
Talk to Spelling Practice
nel campo di immissione. - Premi Invio. L'azione dovrebbe rispondere con il prompt
Main invocation
e il prompt aggiunto per la scenaStart
, "Welcome to Spelling Practice. Usa l'alfabeto fonetico per sillabare la parola. Ad esempio alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?". - Di' Sì per continuare
- Il simulatore riprodurrà l'audio di una parola da scrivere
- Puoi sillabare la parola utilizzando alfabeti fonetici. Ad esempio, per indicare meglio, di' o digita "bravo echo tango tango echo romeo"
- Il simulatore risponderà con la risposta corretta o errata.
- Di' Avanti per passare alla parola successiva oppure esci per uscire dal ciclo di gioco.
13. Complimenti
Congratulazioni. Hai creato il gioco Esercitazione ortografica.
Ora conosci i passaggi chiave necessari per creare un gioco utilizzando Cloud Firestore, Cloud Functions e lo strumento per la creazione di azioni dell'Assistente Google.
Argomenti trattati
- Come interagire con Cloud Firestore
- Come utilizzare gli slot per raccogliere i dati dall'utente
- Come elaborare l'input di un utente e restituire una risposta
- Come utilizzare le condizioni per aggiungere logica a una scena
- Come aggiungere un ciclo di gioco
Risorse didattiche aggiuntive
Puoi esplorare queste risorse per scoprire come creare Azioni per l'Assistente Google:
- Documentazione per lo sviluppo di azioni per l'Assistente Google
- Pagina GitHub di Actions on Google per codici di esempio e librerie
- La community di Reddit ufficiale per gli sviluppatori che lavorano con l'Assistente Google
- Linee guida per la progettazione delle conversazioni per conoscere le best practice e le linee guida relative alle azioni conversazionali
- Introduzione a Cloud Firestore
Pulisci il progetto [consigliato]
Per evitare possibili addebiti, ti consigliamo di rimuovere i progetti che non intendi utilizzare. Per eliminare i progetti creati in questo codelab:
- Per eliminare il progetto e le risorse Firebase, completa i passaggi elencati nella sezione Chiusura (eliminazione) dei progetti.
Attenzione: assicurati di selezionare il progetto corretto per l'eliminazione nella pagina Impostazioni della console Google Cloud.
- (Facoltativo) Per rimuovere immediatamente il progetto dalla console di Actions, completa i passaggi elencati nella sezione Eliminazione di un progetto. Se non completi questo passaggio, il progetto verrà rimosso automaticamente dopo circa 30 giorni.
Segui @ActionsOnGoogle e @Firebase su Twitter per non perderti i nostri ultimi annunci e twitta con #GoogleIO per condividere ciò che hai creato.