Un'estensione Firebase esegue un'attività specifica o un insieme di attività in risposta a Richieste HTTP o che attivano eventi da altri prodotti Firebase e Google, come Firebase Cloud Messaging, Cloud Firestore o Pub/Sub.
Puoi creare la tua estensione per uso personale o da condividere con il mondo nell'hub delle estensioni Firebase. Ad esempio, un'estensione può eseguire una specifica attività di cui la tua app ha regolarmente bisogno oppure può semplificare l'accesso a una delle le API della tua azienda. Dopo aver creato l'estensione, puoi condividerla con altri. Questi utenti possono installare e configurare l'estensione per utilizzarla nei propri progetti Firebase.
Struttura di un'estensione
Un'estensione può avere tre componenti principali:
- Codice Cloud Functions in JavaScript o TypeScript
- I metadati che descrivono la tua estensione
- Documentazione per aiutare gli utenti a configurare e utilizzare la tua 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
functions
contiene il codice di Cloud Functions in JavaScript o TypeScript. Si tratta del codice che esegue le attività dell'estensione in in risposta agli eventi attivati da Firebase e dai servizi Google. - Il file
extension.yaml
contiene i metadati della tua estensione, ad esempio i suoi attivatori e i ruoli di accesso IAM, nonché eventuali parametri che vuoi che siano configurabili dall'utente. - I file
PREINSTALL
,POSTINSTALL
eCHANGELOG
costituiscono la documentazione minima obbligatoria per l'estensione. Questi file aiutano gli utenti a scoprire cosa fa l'estensione, come utilizzarla e quali aggiornamenti hai apportato. Devi anche fornire un'icona per aiutare gli utenti a riconoscere la tua estensione. La La console Firebase, l'interfaccia a riga di comando di Firebase e l'hub di Extensions mostrano i contenuti 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 installare in un progetto o pubblicarle nell'hub delle estensioni, dove chiunque può e installarlo nei propri progetti.
Con quali prodotti può interagire la mia estensione?
Poiché un'estensione Firebase svolge il proprio lavoro utilizzando Cloud Functions, delle possibili integrazioni in due modi: Quali prodotti possono attivare le funzioni della mia estensione? e Una volta attivata, quali prodotti può con cui interagiscono?
Trigger di funzione supportati
Trigger manuali
Innanzitutto, puoi attivare manualmente una funzione. Firebase Extensions e Cloud Le funzioni supportano due modi per attivare manualmente le funzioni:
- Trigger HTTP: esegui il deployment di una funzione in un endpoint HTTP
- Funzioni chiamabili: chiama le tue funzioni Cloud direttamente dal codice client web, Android o iOS utilizzando gli SDK client Firebase.
Se esponi gli endpoint HTTP dalla tua estensione, questa può essere potenzialmente integrata con qualsiasi servizio web che supporta gli 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 dalla tua estensione.
Trigger di servizio Firebase
La maggior parte dei prodotti Firebase emette eventi che possono attivare il cloud di un'estensione funzioni.
- Analytics: attiva le funzioni quando Analytics registra un evento
- Distribuzione di app: attiva le funzioni quando Distribuzione di app attiva un avviso
- Autenticazione: attiva le funzioni quando gli utenti creano ed eliminano 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 eliminato dai bucket
- Crashlytics: attiva le funzioni quando Crashlytics attiva un avviso
- Performance Monitoring:attiva le funzioni quando Performance Monitoring 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 dei servizi Google Cloud
Un'estensione può includere anche funzioni che attivano diversi servizi Google Cloud non Firebase:
- Cloud Pub/Sub: un'estensione può includere funzioni che si attivano quando vengono pubblicati in un argomento Pub/Sub configurabile.
- Cloud Scheduler: un'estensione può includere funzioni in esecuzione su un insieme programmazione
- Cloud Tasks: un'estensione può includere funzioni che possono essere messe in coda utilizzando di Cloud Tasks. Le Estensioni Firebase utilizzano questa funzionalità per consentire a te, in qualità di autore dell'estensione, di scrivere funzioni che rispondano agli eventi di "ciclo di vita" di un'estensione: installazione in un progetto per la prima volta, upgrade a una nuova versione e ricofigurazione.
- Eventarc: un'estensione può includere funzioni che si attivano 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 si attivano dagli eventi di un'estensione.
Supportato dalle funzioni
Una volta attivata la funzione Cloud di un'estensione, l'ambito delle possibili integrazioni è generalmente aperto. Ecco alcuni esempi di cosa puoi fare da una funzione Cloud Functions:
- Leggere, scrivere e interagire in altro modo con qualsiasi servizio Firebase o Google Cloud che utilizza un ruolo IAM supportato.
- Collabora con qualsiasi servizio di terze parti che fornisca 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 il processo di creazione, test e pubblicazione di un'estensione completa. il modo consigliato per imparare a crearne uno.
Dopo aver letto una volta la Guida introduttiva, puoi consultare singole guide agli argomenti, che spiegano ciascuna delle attività coinvolte nella creazione la 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 delle estensioni
- Aggiungere hook utente a un'estensione
- Creare una documentazione utente per l'estensione
- Pubblicare un'estensione nell'hub delle estensioni
- Riferimento completo di extension.yaml