Die Firebase Management REST API ermöglicht programmatische Einrichtung und Verwaltung von Firebase-Projekten, einschließlich der Firebase-Ressourcen und Firebase-Apps
In dieser Übersicht wird der allgemeine Workflow zum Hinzufügen von Firebase-Ressourcen und ‐Apps zu einem vorhandenen Google Cloud-Projekt beschrieben, für das derzeit keine Firebase-Dienste verwendet werden.
Sie können zu bestimmten Abschnitten dieser Seite springen, wenn Sie nur:
- Firebase-Dienste zum Projekt hinzufügen
- Firebase-Apps zum Firebase-Projekt hinzufügen
- Firebase-Projekt mit einem Google Analytics-Konto verknüpfen
- Standardspeicherort des Projekts festlegen
Bevor Sie die Schritte auf dieser Seite ausführen, müssen Sie die API aktivieren.
Informationen zur Zugriffsverwaltung für die Firebase Management API finden Sie unter Cloud Identity Access Management (IAM) API Dokumentation.
Hinweis
Bevor Sie beginnen, müssen Sie die Management API aktivieren für Ihr Google Cloud-Projekt und Zugriffstoken generieren.
Aktivieren Sie die Management REST API für Ihr Google Cloud-Projekt
Falls noch nicht geschehen, müssen Sie die Firebase Management API für die Verwendung mit Ihrem Google Cloud-Projekt aktivieren.
- Öffnen Sie das Firebase Management API in der Google APIs-Konsole.
- Wenn Sie dazu aufgefordert werden, wählen Sie Ihr Google Cloud-Projekt aus.
- Klicken Sie auf der Seite „Firebase Management API“ auf Aktivieren.
API-Zugriffstoken generieren
Hier ist ein Beispiel für Node.js, mit dem das Zugriffstoken abgerufen wird.
Wenn Sie sich nicht in einer Google Cloud-Umgebung befinden, legen Sie zuerst
GOOGLE_APPLICATION_CREDENTIALS
in den Pfad zu Ihrem
Dienstkontoschlüssel.
Linux oder macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
Mit PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Rufen Sie dann mit dem Firebase Admin SDK ein Zugriffstoken mit den Anmeldedaten Ihres Dienstkontos ab:
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);
});
}
Ressourcennamen Ihres Projekts finden
Sie finden die Google Cloud Projekte, die zum Hinzufügen von Firebase verfügbar sind .
ANFRAGE
Anruf
availableProjects.list
Der Anfragetext für diesen Aufruf muss leer sein.
Hier ist ein Beispiel, wie mit Node.js eine Liste der verfügbaren Google Cloud angefordert wird Projekten:
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);
}
}
ERGEBNIS
Der Antworttext eines Aufrufs von availableProjects.list
enthält eine Liste von
ProjectInfo
Objekte. Wenn die Liste der Projekte zu lang ist, enthält der Antworttext auch einen
nextPageToken
, den Sie als Suchparameter verwenden können, um die nächste Seite von
Projekten.
Hier ist ein Beispiel für den Antworttext eines availableProjects.list
-Aufrufs:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Diese Beispielantwort enthält zwei Google Cloud-Projekte, die Firebase haben können
welche Dienste hinzugefügt werden. Beachten Sie, dass das Feld project
die globale
Eindeutiger Ressourcenname für ein Projekt.
Sie können jeden project
-Wert verwenden, der in der Antwort von
availableProjects.list
, um Firebase-Dienste hinzuzufügen oder
Fügen Sie Ihrem Projekt Apps hinzu.
Im nächsten Abschnitt fügen wir Firebase-Dienste zu First Cloud Project
hinzu. Verwenden Sie dazu
den Ressourcennamen projects/first-gcp-project
.
Firebase-Dienste zum Projekt hinzufügen
Google Cloud-Projekte können die Dienste von Firebase nutzen. In diesem Abschnitt erfahren Sie, wie Sie Ihrem vorhandenen Google Cloud-Projekt programmatisch Firebase-Dienste hinzufügen. Sie können auch Firebase Dienste zu Ihrem vorhandenen Google Cloud-Projekt in der Firebase-Konsole hinzu.
ANFRAGE
Anruf
projects.addFirebase
Der Anfragetext für diesen Aufruf muss leer sein.
Hier ist ein Beispiel, wie mit Node.js Firebase-Dienste zu Google Cloud hinzugefügt werden können Projekt:
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']);
}
}
ERGEBNIS
Das Ergebnis eines Aufrufs von projects.addFirebase
ist ein
Operation
Bevor Sie
andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang
um erfolgreich zu sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie operations.get
auf den Vorgang anwenden, bis der Wert von done
true
ist und seine response
vom Typ FirebaseProject
ist. Wenn der Vorgang fehlschlägt, wird error
für
google.rpc.Status
.
So sieht der Antworttext eines operations.get
-Aufrufs aus:
{
"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"
}
}
}
Da done
true
und der response
-Typ FirebaseProject
ist, gilt Folgendes:
Das Projekt Google Cloud hat jetzt Firebase-Dienste. Die Antwort enthält auch andere nützliche Informationen zu Ihrer neu erstellten FirebaseProject
, z. B. die projectNumber
und die Standard-resources
. Operation
wird automatisch
nach Abschluss gelöscht.
Firebase-Apps zum Projekt hinzufügen
FirebaseProject
kann in vielen verschiedenen Apps verwendet werden, z. B. in iOS-, Android- und Web-Apps. In diesem Abschnitt erfahren Sie, wie Sie Firebase-Apps
FirebaseProject
programmatisch. Sie können Firebase-Apps auch
Ihrem vorhandenen Firebase-Projekt in der Firebase Console.
Wählen Sie einen Firebase-App-Typ aus, der Ihrem Firebase-Projekt hinzugefügt werden soll.
Firebase-Projekt mit einem Google Analytics-Konto verknüpfen (optional)
Sie können eine bestehende
Google Analytics-Konto mit Ihrem bestehenden
FirebaseProject
programmatisch. Sie können auch Ihre vorhandenen
mit Google Analytics in der
Integrationen
Ihrer Projekteinstellungen.
Für den Aufruf von projects.addGoogleAnalytics
ist ein analytics_resource
erforderlich,
Dies kann entweder analyticsAccountId
oder analyticsPropertyId
sein:
Geben Sie eine vorhandene
analyticsAccountId
an, um eine neue Google Analytics-Property im angegebenen Konto bereitzustellen und die neue Property mit Ihrem Firebase-Projekt zu verknüpfen.Geben Sie einen vorhandenen
analyticsPropertyId
an, der mit Google Analytics verknüpft werden soll mit Ihrem Firebase-Projekt verknüpfen.
Sowohl Ihre analyticsAccountId
als auch vorhandene analyticsPropertyId
finden Sie auf der Google Analytics-Website.
Wenn du projects.addGoogleAnalytics
anrufst:
Bei der ersten Prüfung wird ermittelt, ob Datenstreams in der Google-Suche Analytics-Property den vorhandenen Firebase-Apps in Ihrem
FirebaseProject
(basierend auf denpackageName
oderbundleId
, die mit Datenstream). Anschließend werden die Datenstreams und Apps gegebenenfalls verknüpft. Hinweis: Diese automatische Verknüpfung gilt nur für Android- und iOS-Apps.Wenn für Ihre Firebase-Apps keine entsprechenden Datenstreams gefunden werden, werden in der Google Analytics-Property für jede Ihrer Firebase-Apps neue Datenstreams bereitgestellt. Für einen Web-Client wird immer ein neuer Datenstream bereitgestellt. auch wenn sie zuvor mit einem Datenstream in Ihrem Analytics-Property.
Weitere Informationen zur Hierarchie und Struktur von Google Analytics-Konten finden Sie in der Analytics-Dokumentation
ANFRAGE
Anruf
projects.addGoogleAnalytics
Im Anfragetext für unseren Beispielaufruf von project.addGoogleAnalytics
geben wir
geben Sie unser Google Analytics-Konto analyticsAccountId
an. Bei diesem Anruf
eine neue Google Analytics-Property bereitstellen und die neue Property mit
FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Hier ist ein Beispiel für Node.js, um ein Firebase-Projekt mit einem Google Analytics-Konto zu verknüpfen:
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']);
}
}
ERGEBNIS
Das Ergebnis eines Aufrufs von projects.addGoogleAnalytics
ist ein
Operation
Bevor Sie
andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang
um erfolgreich zu sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie operations.get
auf der
Vorgang, bis der Wert von done
true
ist und response
vom Typ ist
analyticsDetails
Wenn der Vorgang fehlschlägt, wird error
für
google.rpc.Status
.
So sieht der Antworttext eines operations.get
-Aufrufs aus:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
Da done
"true" ist und der response
-Typ analyticsDetails
ist, gilt Folgendes:
FirebaseProject
ist jetzt mit dem angegebenen Google Analytics-Konto verknüpft. Die
Operation
wird nach Abschluss automatisch gelöscht.
Standardspeicherort des Projekts festlegen (optional)
Wenn Ihr Firebase-Projekt Cloud Firestore, Cloud Storage oder einer App Engine-Anwendung haben, können Sie die standardmäßige Google Cloud-Anwendung abschließen Standort der Plattformressourcen (GCP) für Ihr Projekt programmatisch erstellen. Sie können einen Standort auch in der Firebase Console auswählen.
Lesen Sie vor dem Festlegen dieses Standorts den Artikel Standorte für Ihre Kampagne auswählen
Projekt finden Sie Informationen dazu, welcher Standort für
für Ihr Projekt. Außerdem sollten Sie
projects.availableLocations
um eine Liste der gültigen Standorte für Ihr Projekt zu erhalten, denn wenn Ihr Projekt
gehört zu einer Google Cloud-Organisation, sind Ihre Organisationsrichtlinien
kann dies einschränken,
die für Ihr Projekt gültig sind.
Wenn Sie diese defaultLocation.finalize
-Methode aufrufen, wird eine App Engine-Anwendung mit einem StandardCloud Storage-Bucket im locationId
erstellt, den Sie im Anfragetext angeben.
Der standardmäßige GCP-Ressourcenstandort wurde möglicherweise bereits angegeben, wenn die
Project
hat bereits eine App Engine-Anwendung oder diese
Die Methode defaultLocation.finalize
wurde bereits aufgerufen.
ANFRAGE
Anruf
projects.defaultLocation.finalize
So erstellen Sie den Anfragetext:
Erforderlich:
locationId
: Der Standort, an dem Ihre Daten für GCP-Dienste gespeichert werden für die eine Standorteinstellung erforderlich ist, z. B. Cloud Firestore oder Cloud Storage
{
"locationId": "us-west2"
}
Hier ist ein Beispiel für Node.js, mit dem der Standardspeicherort Ihres Projekts endgültig festgelegt wird:
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']);
}
}
ERGEBNIS
Das Ergebnis eines Aufrufs von projects.defaultLocation.finalize
ist ein
Operation
Bevor Sie
andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang
um erfolgreich zu sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie operations.get
auf der
Vorgang, bis der Wert von done
true
ist und sein response
vom Typ ist
google.protobuf.Empty
Wenn der Vorgang fehlschlägt, wird der Antworttext
error
ist vom Typ google.rpc.Status
. Operation
wird automatisch
nach Abschluss gelöscht.