L'API REST Firebase Management consente configurazione programmatica e gestione di progetti Firebase, inclusa la gestione Risorse Firebase e app Firebase.
Questa panoramica descrive il flusso di lavoro generale per aggiungere risorse Firebase e di app a un Google Cloud esistente progetto che attualmente non utilizza i servizi Firebase.
Puoi passare a sezioni specifiche di questa pagina se vuoi semplicemente:
- Aggiungi servizi Firebase al progetto
- Aggiungi app Firebase al progetto Firebase
- Collegare il progetto Firebase a un account Google Analytics
- Finalizzare la località predefinita del progetto
Prima di seguire i passaggi di questa pagina, assicurati di abilitare l'API.
Per informazioni sulla gestione dell'accesso per l'API Firebase Management, consulta la documentazione dell'API Cloud Identity Access Management (IAM).
Prima di iniziare
Prima di iniziare, devi abilitare l'API di gestione per il tuo progetto Google Cloud generare il token di accesso.
Abilita l'API REST Management per il tuo progetto Google Cloud
Se non l'hai già fatto, dovrai attivare il API Firebase Management per utilizzarlo con il tuo progetto Google Cloud.
- Apri l'app API Firebase Management nella console API di Google.
- Quando richiesto, seleziona il progetto Google Cloud.
- Fai clic su Abilita nella pagina dell'API Firebase Management.
Genera il token di accesso API
Ecco un esempio di Node.js che recupera il tuo token di accesso.
Innanzitutto, se non ti trovi in un ambiente Google Cloud, imposta il valore
GOOGLE_APPLICATION_CREDENTIALS
al percorso del tuo
chiave dell'account di servizio.
Linux o macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
Con PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Quindi, utilizza l'SDK Admin Firebase per ottenere un token di accesso dal tuo servizio credenziali dell'account:
const admin = require('firebase-admin');
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
Trova il nome risorsa del progetto
Puoi trovare i Google Cloud progetti disponibili per l'aggiunta di servizi Firebase.
RICHIEDI
Chiama
availableProjects.list
Il corpo della richiesta per questa chiamata deve essere vuoto.
Ecco un esempio per Node.js per richiedere un elenco di progetti Google Cloud disponibili:
const fetch = require('node-fetch');
async function listProjects() {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/availableProjects';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
const projects = resp['projectInfo'];
console.log('Project total: ' + projects.length);
console.log('');
for (let i in projects) {
const project = projects[i];
console.log('Project ' + i);
console.log('ID: ' + project['project']);
console.log('Display Name: ' + project['displayName']);
console.log('');
}
} catch(err) {
console.error(err);
}
}
RISULTATO
Il corpo della risposta da una chiamata a availableProjects.list
contiene un elenco di
ProjectInfo
di oggetti strutturati. Se l'elenco dei progetti è troppo lungo, il corpo della risposta contiene anche un valore nextPageToken
che puoi utilizzare come parametro di query per ottenere la pagina successiva dei progetti.
Ecco un esempio di corpo della risposta di una chiamata availableProjects.list
:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Questa risposta di esempio contiene due progetti Google Cloud che possono includere Firebase
e servizi aggiuntivi. Tieni presente che il campo project
fornisce le risposte globali
un nome risorsa univoco
per un progetto.
Puoi utilizzare qualsiasi valore project
elencato nella risposta da
availableProjects.list
per aggiungere servizi Firebase oppure
aggiungere app al tuo progetto.
Nella sezione successiva aggiungeremo i servizi Firebase a First Cloud Project
utilizzando il nome della risorsa projects/first-gcp-project
.
Aggiungi servizi Firebase al progetto
I progetti Google Cloud possono sfruttare i servizi offerti da Firebase. Nel in questa sezione, scoprirai come aggiungere i servizi Firebase al tuo account progetto Google Cloud in modo programmatico. Tieni presente che puoi anche aggiungere Firebase al tuo progetto Google Cloud esistente nella console Firebase.
RICHIEDI
Chiama
projects.addFirebase
Il corpo della richiesta per questa chiamata deve essere vuoto.
Ecco un esempio per Node.js per aggiungere i servizi Firebase al tuo progetto Google Cloud:
const fetch = require('node-fetch');
async function addFirebase(projectId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addFirebase';
const options = {
method: 'POST',
// Use a manual access token here since explicit user access token is required.
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
RISULTATO
Il risultato di una chiamata a projects.addFirebase
è un
Operation
Prima di poter chiamare altri endpoint correlati a Firebase per il tuo progetto, l'operazione deve essere riuscita.
Per verificare se l'operazione è riuscita, puoi chiamare
operations.get
sull'operazione finché il valore di done
non è true
e il relativo valore response
è di
digita FirebaseProject
. Se l'operazione non riesce, il relativo error
è impostato su
google.rpc.Status
.
Ecco il corpo della risposta di una chiamata operations.get
:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.FirebaseProject",
"projectId": "first-cloud-project",
"projectNumber": "...",
"displayName": "First Cloud Project",
"name": "projects/first-cloud-project",
"resources": {
"hostingSite": "first-cloud-project",
"realtimeDatabaseInstance": "first-cloud-project"
}
}
}
Poiché done
è true
e il tipo response
è FirebaseProject
, il
Il progetto Google Cloud ora include servizi Firebase. La risposta contiene anche
altre informazioni utili sui contenuti FirebaseProject
appena creati, come
projectNumber
e il valore predefinito di resources
. L'app Operation
viene automaticamente
eliminati al termine dell'operazione.
Aggiungi app Firebase al progetto
È possibile usare un FirebaseProject
diverse app, tra cui iOS, Android e web
app. In questa sezione, scoprirai come aggiungere le app Firebase al tuo account
FirebaseProject
in modo programmatico. Tieni presente che puoi anche aggiungere app Firebase al
tuo progetto Firebase esistente nella console Firebase.
Seleziona un tipo di app Firebase da aggiungere al progetto Firebase.
(Facoltativo) Collegare il progetto Firebase a un account Google Analytics
Puoi collegare una
account Google Analytics al tuo account esistente
FirebaseProject
in modo programmatico. Tieni presente che puoi anche collegare i tuoi account
dal progetto Firebase a Google Analytics nella
Integrazioni
di Impostazioni progetto.
La chiamata a projects.addGoogleAnalytics
richiede analytics_resource
,
che può essere analyticsAccountId
o analyticsPropertyId
:
Specifica un valore
analyticsAccountId
esistente per eseguire il provisioning di un nuovo Google Analytics all'interno dell'account specificato e associa la nuova proprietà a progetto Firebase.Specifica un
analyticsPropertyId
esistente da associare a Google Analytics con il tuo progetto Firebase.
Puoi trovare sia il tuo analyticsAccountId
sia eventuali analyticsPropertyId
esistenti sul sito web di Google Analytics.
Quando chiami projects.addGoogleAnalytics
:
Il primo controllo determina se sono presenti stream di dati esistenti nella Le proprietà Analytics corrispondono a qualsiasi app Firebase esistente nel tuo
FirebaseProject
(in base ai valoripackageName
obundleId
associati a lo stream di dati). Poi, se applicabile, gli stream di dati e le app vengono collegati. Tieni presente che questo collegamento automatico si applica solo alle app per Android e per iOS.Se non vengono trovati stream di dati corrispondenti per le app Firebase, i nuovi dati il provisioning degli stream viene eseguito nella proprietà Google Analytics per ciascuno dei tuoi Firebase Apps. Tieni presente che viene sempre eseguito il provisioning di un nuovo stream di dati per un Anche se in precedenza era associata a uno stream di dati nel tuo Proprietà Analytics.
Scopri di più sulla gerarchia e sulla struttura degli account Google Analytics nella documentazione di Analytics.
RICHIEDI
Chiama
projects.addGoogleAnalytics
Nel corpo della richiesta relativa alla chiamata di esempio a project.addGoogleAnalytics
,
specificare il nostro account Google Analytics analyticsAccountId
. Questa chiamata
eseguire il provisioning di una nuova proprietà Google Analytics e associarla a
FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Ecco un esempio in cui Node.js può collegare un progetto Firebase a un progetto Google Analytics :
const fetch = require('node-fetch');
async function addGoogleAnalytics(projectId, analyticsAccountId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addGoogleAnalytics';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'analyticsAccountId': analyticsAccountId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
RISULTATO
Il risultato di una chiamata a projects.addGoogleAnalytics
è un
Operation
Prima di
chiamare altri endpoint relativi a Firebase per il progetto, l'operazione deve
successo.
Per verificare se l'operazione è riuscita, puoi chiamare operations.get
sul
operazione finché il valore di done
non è true
e response
è di tipo
analyticsDetails
. Se l'operazione non va a buon fine, error
viene impostato su
google.rpc.Status
.
Ecco il corpo della risposta di una chiamata operations.get
:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
Poiché done
è true e il tipo response
è analyticsDetails
,
FirebaseProject
è ora collegato all'account Google Analytics specificato. Il
Operation
viene eliminato automaticamente al termine.
Finalizza la località predefinita del progetto (facoltativo)
Se il tuo progetto Firebase utilizzerà Cloud Firestore, Cloud Storage o un'app App Engine, puoi finalizzare la configurazione predefinita di Google Cloud Località della risorsa della piattaforma (Google Cloud) per il tuo progetto in modo programmatico. Tieni presente che puoi anche selezionare una località nella console Firebase.
Prima di impostare questa località, consulta Selezionare le località per i tuoi
progetto per informazioni sulla località migliore per
del progetto. Devi anche chiamare
projects.availableLocations
per restituire un elenco delle località valide per il tuo progetto perché, se il progetto appartiene a un'organizzazione Google Cloud, i criteri dell'organizzazione potrebbero limitare le località valide per il progetto.
La chiamata a questo metodo defaultLocation.finalize
crea un App Engine
con un valore predefinito Cloud Storage
bucket
situato nel
locationId
che fornisci nel corpo della richiesta.
La località della risorsa Google Cloud predefinita potrebbe essere già stata specificata se
Project
ha già un'applicazione App Engine o questa
defaultLocation.finalize
è stato chiamato in precedenza.
RICHIEDI
Chiama
projects.defaultLocation.finalize
Ecco come creare il corpo della richiesta:
Obbligatorio:
locationId
: la località in cui sono archiviati i tuoi dati per i servizi Google Cloud che richiedono l'impostazione di una località, come Cloud Firestore o Cloud Storage.
{
"locationId": "us-west2"
}
Ecco un esempio in cui Node.js può finalizzare la località predefinita del progetto:
const fetch = require('node-fetch');
async function finalizeProjectLocation(projectId, locationId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/defaultLocation:finalize';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'locationId': locationId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
RISULTATO
Il risultato di una chiamata a projects.defaultLocation.finalize
è un
Operation
Prima di
chiamare altri endpoint relativi a Firebase per il progetto, l'operazione deve
successo.
Per verificare se l'operazione è riuscita, puoi chiamare operations.get
sul
operazione finché il valore di done
non è true
e il relativo response
non è di tipo
google.protobuf.Empty
. Se l'operazione non va a buon fine, il corpo della risposta
error
sarà di tipo google.rpc.Status
. L'app Operation
viene automaticamente
eliminati al termine dell'operazione.