Un'estensione Firebase esegue un'attività o una serie di attività specifiche in risposta a richieste HTTP o eventi di attivazione da altri prodotti Firebase e Google, come Firebase Cloud Messaging, Cloud Firestore o Pub/Sub.
Puoi creare la tua Firebase Extension per uso personale o per condividerla con il mondo nell'hub delle Firebase Extensions. Ad esempio, l'estensione può eseguire un'attività specifica di cui la tua app ha bisogno regolarmente oppure può semplificare l'accesso a una delle API della tua azienda. Dopo aver creato l'estensione, puoi condividerla con altri utenti. Questi utenti possono installare e configurare l'estensione per utilizzarla nei propri progetti Firebase.
Struttura di un'estensione
Puoi considerare un'estensione come composta da tre componenti principali:
- Codice Cloud Functions, in JavaScript o TypeScript
- Metadati che descrivono l'estensione
- Documentazione per aiutare gli utenti a configurare e utilizzare l'estensione
Per sviluppare un'estensione, assembla questi componenti nella seguente struttura:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- La directory
functionscontiene il codice Cloud Functions in JavaScript o TypeScript. Questo è il codice che esegue le attività dell'estensione in risposta agli eventi attivati dai servizi Firebase e Google. - Il file
extension.yamlcontiene i metadati dell'estensione, come i trigger e i ruoli di accesso IAM, nonché tutti i parametri che vuoi che siano configurabili dall'utente. - I file
PREINSTALL,POSTINSTALLeCHANGELOGsono la documentazione minima che l'estensione deve avere. Questi file aiutano gli utenti a scoprire cosa fa l'estensione, come utilizzarla e quali aggiornamenti hai apportato. Dovresti anche fornire un'icona per aiutare gli utenti a riconoscere l'estensione. La console Firebase, l'interfaccia a riga di comando di Firebase e l'hub delle estensioni mostrano i contenuti di questi file quando gli utenti esplorano, installano e gestiscono l'estensione.
Dopo aver creato l'estensione, puoi utilizzare l'interfaccia a riga di comando di Firebase per installarla in un progetto o pubblicarla nell'hub delle estensioni, dove chiunque può scoprirla e installarla nei propri progetti.
Con quali prodotti può interagire la mia estensione?
Poiché un'estensione Firebase funziona utilizzando Cloud Functions, puoi considerare la questione delle possibili integrazioni in due modi: quali prodotti possono attivare le funzioni della mia estensione? e una volta attivate, con quali prodotti possono interagire le funzioni della mia estensione?
Trigger di funzioni supportati
Trigger manuali
Innanzitutto, puoi attivare manualmente una funzione. Le estensioni Firebase e Cloud Functions supportano due modi per attivare manualmente le funzioni:
- Trigger HTTP: esegui il deployment di una funzione in un endpoint HTTP
- Funzioni richiamabili: chiama le funzioni Cloud Functions direttamente dal codice client iOS, Android o web utilizzando gli SDK client Firebase.
Se esponi gli endpoint HTTP dalla tua estensione, questa può potenzialmente integrarsi con qualsiasi servizio web che supporti i webhook. Con le funzioni richiamabili, gli utenti che installano la tua estensione possono utilizzare gli SDK Firebase come libreria client per accedere all'API implementata dall'estensione.
Trigger di servizi Firebase
La maggior parte dei prodotti Firebase emette eventi che possono attivare le funzioni Cloud Functions di un'estensione.
- Analytics:attiva le funzioni quando Analytics registra un evento
- App Distribution:attiva le funzioni quando App Distribution attiva un avviso
- Autenticazione:attiva le funzioni quando gli utenti creano ed eliminano gli account
- Cloud Firestore:attiva le funzioni quando le pagine vengono create, aggiornate o eliminate
- Cloud Storage: attiva le funzioni quando gli oggetti vengono caricati, archiviati o eliminati dai bucket
- Crashlytics:attiva le funzioni quando Crashlytics attiva un avviso
- Monitoraggio del rendimento:attiva le funzioni quando il monitoraggio del rendimento attiva un avviso
- Realtime Database:attiva le funzioni quando i dati vengono creati, aggiornati o eliminati
- Remote Config:attiva le funzioni quando un parametro viene aggiornato
- Test Lab:attiva le funzioni quando Test Lab attiva un avviso
Trigger di servizi Google Cloud
Un'estensione può anche includere funzioni che vengono attivate da diversi servizi Google Cloud non Firebase:
- Cloud Pub/Sub: un'estensione può includere funzioni che vengono attivate quando gli eventi vengono pubblicati in un argomento Pub/Sub configurabile.
- Cloud Scheduler: un'estensione può includere funzioni che vengono eseguite in base a una pianificazione impostata .
- Cloud Tasks: un'estensione può includere funzioni che possono essere messe in coda utilizzando Cloud Tasks. Le estensioni Firebase utilizzano questa funzionalità per consentirti, in qualità di autore dell'estensione, di scrivere funzioni che rispondono agli eventi del "ciclo di vita" di un'estensione: l'installazione in un progetto per la prima volta, l'upgrade a una nuova versione e la riconfigurazione.
- Eventarc: un'estensione può includere funzioni che vengono attivate quando gli eventi vengono pubblicati in un canale Eventarc configurabile; al contrario, un'estensione può pubblicare i propri eventi in un canale Eventarc per consentire agli utenti di definire le proprie funzioni che vengono attivate dagli eventi dell'estensione.
Funzioni supportate
Una volta attivata la funzione Cloud Functions di un'estensione, la gamma di possibili integrazioni è generalmente illimitata. Ecco alcuni punti salienti di ciò che puoi fare da una funzione Cloud Functions:
- Leggi, scrivi e interagisci in altro modo con qualsiasi Firebase o Google Cloud servizio che utilizza un ruolo IAM supportato.
- Utilizza qualsiasi servizio di terze parti che fornisce un'API web.
- Utilizza i tuoi servizi personalizzati se fornisci un'API web.
- Esegui la maggior parte delle librerie JavaScript, tra cui TensorFlow.js, Express.js, e così via.
Come creare un'estensione
Il tutorial Inizia ti guida nella procedura di creazione, test e pubblicazione di un'estensione completa ed è il modo consigliato per imparare a crearne una.
Dopo aver completato la guida introduttiva, puoi consultare le guide ai singoli argomenti, che spiegano ciascuna delle attività coinvolte nella creazione della tua estensione:
- Scrivere funzioni per un'estensione
- Utilizzare i parametri in un'estensione
- Configurare l'accesso appropriato per un'estensione
- Rispondere agli eventi del ciclo di vita dell'estensione
- Aggiungere hook utente a un'estensione
- Creare la documentazione utente per l'estensione
- Pubblicare un'estensione nell'hub delle estensioni
- Guida di riferimento completa per extension.yaml