Panoramica dell'editore dell'estensione

Un'estensione Firebase esegue un'attività specifica o una serie di attività in risposta a richieste HTTP o all'attivazione di 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 per condividerla con il mondo in Firebase Extensions Hub. Ad esempio, la tua estensione può eseguire un'attività specifica di cui la tua app ha bisogno regolarmente o può semplificare l'accesso a una delle API della tua azienda. Dopo aver creato la tua estensione, puoi condividerla con altri. Tali utenti possono installare e configurare l'estensione per l'utilizzo nei propri progetti Firebase.

Struttura di un'estensione

Puoi pensare a un'estensione come se avesse tre componenti principali:

  • Codice Cloud Functions, in JavaScript o TypeScript
  • Metadati che descrivono la tua estensione
  • Documentazione per aiutare i tuoi utenti a configurare e utilizzare la tua estensione

Per sviluppare un'estensione, assembli 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 tuo codice Cloud Functions in JavaScript o TypeScript. Questo è il codice che esegue le attività dell'estensione in risposta agli eventi attivati ​​da Firebase e dai servizi Google.
  • Il file extension.yaml contiene metadati sulla tua estensione, come i suoi trigger e i ruoli di accesso IAM, nonché qualsiasi parametro che desideri sia configurabile dall'utente.
  • I file PREINSTALL , POSTINSTALL e CHANGELOG sono la documentazione minima che la tua estensione deve avere. Questi file aiutano i tuoi utenti a sapere cosa fa la tua estensione, come usarla e quali aggiornamenti hai apportato. Dovresti anche fornire un'icona per aiutare gli utenti a riconoscere la tua estensione. La console di 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 la tua 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 pensare alla questione delle possibili integrazioni in due modi: quali prodotti possono attivare le funzioni della mia estensione? e una volta attivato, con quali prodotti possono interagire le funzioni della mia estensione?

Trigger di funzioni supportati

Trigger manuali

Prima di tutto, puoi attivare manualmente una funzione. Firebase Extensions e Cloud Functions supportano due modalità di attivazione manuale delle funzioni:

  • Trigger HTTP: distribuire una funzione a un endpoint HTTP
  • Funzioni richiamabili: chiama le tue funzioni cloud direttamente dal tuo codice client iOS, Android o Web, utilizzando gli SDK del client Firebase.

Esponendo gli endpoint HTTP dalla tua estensione, la tua estensione 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 dalla tua estensione.

Trigger del servizio Firebase

La maggior parte dei prodotti Firebase emette eventi che possono attivare le funzioni cloud 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 delle prestazioni: attiva le funzioni quando il monitoraggio delle prestazioni attiva un avviso
  • Database in tempo reale: 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 del servizio Google Cloud

Un'estensione può anche includere funzioni che attivano diversi servizi Google Cloud non Firebase:

  • Cloud Pub/Sub : un'estensione può includere funzioni che si attivano quando gli eventi vengono pubblicati in un argomento Pub/Sub configurabile.
  • Cloud Scheduler : un'estensione può includere funzioni che vengono eseguite su una pianificazione prestabilita
  • Cloud Tasks : un'estensione può includere funzioni che possono essere messe in coda utilizzando Cloud Tasks. Firebase Extensions utilizza questa funzionalità per consentirti, in qualità di autore dell'estensione, di scrivere funzioni che rispondono agli eventi del "ciclo di vita" di un'estensione: installazione in un progetto per la prima volta, aggiornamento a una nuova versione e riconfigurazione.
  • Eventarc : un'estensione può includere funzioni che si attivano quando gli eventi vengono pubblicati su un canale Eventarc configurabile; al contrario, un'estensione può pubblicare i propri eventi su 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 che la Funzione Cloud di un'estensione è stata attivata, la gamma di possibili integrazioni è generalmente aperta. Ecco alcuni punti salienti di ciò che puoi fare da una Funzione Cloud:

  • Leggi, scrivi e interagisci in altro modo con qualsiasi servizio Firebase o Google Cloud che utilizza un ruolo IAM supportato .
  • Lavora con qualsiasi servizio di terze parti che fornisce un'API web.
  • Lavora con 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 costruire un'estensione

L'esercitazione introduttiva ti guida attraverso il processo di creazione, test e pubblicazione di un'estensione completa ed è il modo consigliato per imparare a crearne una.

Iniziare

Dopo aver consultato una volta la guida introduttiva, puoi fare riferimento alle singole guide tematiche, che spiegano ciascuna delle attività coinvolte nella creazione della tua estensione: