Die Firebase Management REST API ermöglicht die programmatische Einrichtung und Verwaltung von Firebase-Projekten, einschließlich der Firebase-Ressourcen und Firebase-Apps eines Projekts.
In dieser Übersicht wird der allgemeine Workflow zum Hinzufügen von Firebase-Ressourcen und Apps zu einem vorhandenen Google Cloud Projekt beschrieben, in dem noch keine Firebase-Dienste verwendet werden.
Sie können zu bestimmten Abschnitten dieser Seite springen, wenn Sie Folgendes tun möchten:
- Firebase-Dienste zu Ihrem Projekt hinzufügen
- Firebase-Apps zu Ihrem Firebase-Projekt hinzufügen
- Firebase-Projekt mit einem Google Analytics-Konto verknüpfen
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 in der Dokumentation zur Cloud Identity Access Management (IAM) API.
Hinweis
Bevor Sie beginnen, müssen Sie die Management API aktivieren für Ihr Google Cloud Projekt und Ihr Zugriffstoken generieren.
Management REST API für Ihr Google Cloud Projekt aktivieren
Falls noch nicht geschehen, müssen Sie die Firebase Management API für die Verwendung mit Ihrem Google Cloud Projekt aktivieren.
- Öffnen Sie die Seite „Firebase Management API“ in der Google APIs Console.
- Wählen Sie bei Aufforderung 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 Sie Ihr Zugriffstoken abrufen können.
Wenn Sie sich nicht in einer Google Cloud Umgebung befinden, legen Sie zuerst die
GOOGLE_APPLICATION_CREDENTIALS Umgebungsvariable auf den Pfad zu Ihrem
Dienstkontoschlüssel fest.
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"
Verwenden Sie dann das Firebase Admin SDK, um ein Zugriffstoken aus Ihren Dienstkontoanmeldedaten abzurufen:
import { initializeApp, applicationDefault } from "firebase-admin/app";
initializeApp();
async function getAccessToken() {
try {
const accessToken = await applicationDefault().getAccessToken();
return accessToken.access_token;
} catch (err) {
console.error('Unable to get access token');
console.error(err);
}
}
Ressourcennamen Ihres Projekts finden
Sie können die Google Cloud Projekte finden, denen Firebase Dienste hinzugefügt werden können.
ANFRAGE
Rufen Sie
availableProjects.list auf.
Der Anfragetext für diesen Aufruf muss leer sein.
Hier ist ein Beispiel für Node.js, um eine Liste der verfügbaren Google Cloud Projekte anzufordern:
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
Objekten. Wenn die Liste der Projekte zu lang ist, enthält der Antworttext auch ein nextPageToken, das Sie als Abfrageparameter verwenden können, um die nächste Seite mit Projekten abzurufen.
Hier ist ein Beispiel für einen 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, denen Firebase
Dienste hinzugefügt werden können. Das Feld project enthält den global eindeutigen Ressourcennamen für ein Projekt.
Sie können jeden project-Wert verwenden, der in der Antwort von
availableProjects.list aufgeführt ist, um Firebase-Dienste hinzuzufügen oder
Apps hinzuzufügen zu Ihrem Projekt.
Im nächsten Abschnitt fügen wir First Cloud Project mit dem Ressourcennamen projects/first-gcp-project Firebase-Dienste hinzu.
Firebase-Dienste zu Ihrem Projekt hinzufügen
Google Cloud Projekte können die von Firebase angebotenen Dienste nutzen. In diesem Abschnitt erfahren Sie, wie Sie Ihrem vorhandenen Google Cloud Projekt programmatisch Firebase-Dienste hinzufügen. Sie können Ihrem vorhandenen Google Cloud Projekt auch in der Firebase Konsole Firebase Dienste hinzufügen.
ANFRAGE
Rufen Sie
projects.addFirebase auf.
Der Anfragetext für diesen Aufruf muss leer sein.
Hier ist ein Beispiel für Node.js, um Ihrem Google Cloud Projekt Firebase-Dienste hinzuzufügen:
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 erfolgreich sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie
operations.get
für den Vorgang aufrufen, bis der Wert von done true ist und die response vom
Typ FirebaseProject ist. Wenn der Vorgang fehlschlägt, wird error auf google.rpc.Status gesetzt.
Hier ist der Antworttext eines operations.get-Aufrufs:
{
"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 ist und der response-Typ ein FirebaseProject ist, hat das
Google Cloud-Projekt jetzt Firebase-Dienste. Die Antwort enthält auch andere nützliche Informationen zu Ihrem neu erstellten FirebaseProject, z. B. die projectNumber und die Standard-resources. Das Operation-Objekt wird nach Abschluss automatisch gelöscht.
Firebase-Apps zu Ihrem Projekt hinzufügen
Viele verschiedene Apps können ein FirebaseProject verwenden, darunter iOS-, Android- und Web-Apps. In diesem Abschnitt erfahren Sie, wie Sie Ihrem vorhandenen FirebaseProject programmatisch Firebase-Apps hinzufügen. Sie können Ihrem vorhandenen Firebase-Projekt auch in der Firebase console Firebase-Apps hinzufügen.
Wählen Sie einen Typ von Firebase-App aus, die Sie Ihrem Firebase-Projekt hinzufügen möchten.
iOS+
Sie können Ihrem vorhandenen Firebase-Projekt eine Firebase iOS-App hinzufügen.
ANFRAGE
Rufen Sie
projects.iosApps.create auf.
So erstellen Sie den Anfragetext:
Erforderlich:
bundleId: Die kanonische Bundle-ID der iOS-App, wie sie im iOS App Store angezeigt wird.
Optional, aber empfohlen:
displayName: Der vom Nutzer zugewiesene Anzeigename der App. Dieser Wert ist nützlich, um die App später in der Firebase Console zu finden.appStoreId: Die automatisch generierte Apple-ID, die Ihrer App von Apple zugewiesen wurde. Geben Sie eineappStoreIdan, wenn sie bereits von Apple zugewiesen wurde.
Im Anfragetext für unser Beispiel verwenden wir nur displayName und bundleId:
{
"displayName": "My Firebase iOS App",
"bundleId": "com.firebase.ios"
}
Hier ist ein Beispiel für Node.js, um Ihrem Firebase-Projekt eine Firebase iOS-App hinzuzufügen:
const fetch = require('node-fetch');
async function addIosApp(projectId, displayName, bundleId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/iosApps';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'displayName': displayName,
'bundleId': bundleId
}),
};
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.iosApps.create ist ein
Operation. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie
operations.get
für den Vorgang aufrufen, bis der Wert von done true ist und die response vom
Typ IosApp ist. Wenn der Vorgang fehlschlägt, wird error auf google.rpc.Status gesetzt.
Hier ist der Antworttext eines operations.get-Aufrufs:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.IosApp",
"name": "projects/first-cloud-project/iosApps/...",
"appId": "...",
"displayName": "My Firebase iOS App",
"projectId": "first-cloud-project",
"bundleId": "com.firebase.ios"
}
}
Da done true ist und der response-Typ IosApp ist, hat das FirebaseProject jetzt eine IosApp. Die Antwort enthält auch andere nützliche Informationen zu Ihrer neu erstellten Firebase iOS-App, z. B. die eindeutige Firebase-appId. Das Operation-Objekt wird nach Abschluss automatisch gelöscht.
Android
Sie können Ihrem vorhandenen Firebase-Projekt eine Firebase Android-App hinzufügen.
ANFRAGE
Rufen Sie
projects.androidApps.create auf.
So erstellen Sie den Anfragetext:
Erforderlich:
packageName: Der kanonische Paketname der Android-App, wie er in der Google Play Console angezeigt wird.
Optional, aber empfohlen:
displayName: Der vom Nutzer zugewiesene Anzeigename der App. Dieser Wert ist nützlich, um die App später in der Firebase Console zu finden.
Im Anfragetext für unser Beispiel verwenden wir packageName und displayName:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Hier ist ein Beispiel für Node.js, um Ihrem Firebase-Projekt eine Firebase Android-App hinzuzufügen:
const fetch = require('node-fetch');
async function addAndroidApp(projectId, displayName, packageName) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/androidApps';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'displayName': displayName,
'packageName': packageName
}),
};
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.androidApps.create ist ein
Operation. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie
operations.get
für den Vorgang aufrufen, bis der Wert von done true ist und die response vom
Typ AndroidApp ist. Wenn der Vorgang fehlschlägt, wird error auf google.rpc.Status gesetzt.
Hier ist der Antworttext eines operations.get-Aufrufs:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AndroidApp",
"name": "projects/first-cloud-project/androidApps/...",
"appId": "...",
"displayName": "My Firebase Android App",
"projectId": "first-cloud-project",
"packageName": "com.firebase.android"
}
}
Da done true ist und der response-Typ AndroidApp ist, hat das FirebaseProject jetzt eine AndroidApp. Die Antwort enthält auch andere nützliche Informationen zu Ihrer neu erstellten Firebase Android-App, z. B. die eindeutige Firebase-appId. Das Operation-Objekt wird nach Abschluss automatisch gelöscht.
SHA-Zertifikate hinzufügen
Sie können jeder vorhandenen Firebase Android-App SHA-Zertifikate hinzufügen, indem Sie
projects.androidApps.sha.create aufrufen.
Der Anfragetext für diesen Methodenaufruf muss ein leeres Feld name haben.
Das Ergebnis dieses Aufrufs ist eine neu erstellte Instanz von
ShaCertificate.
Wenn Sie projects.androidApps.sha.create aufrufen, müssen Sie einen gültigen SHA-1- oder SHA-256-Zertifikathash angeben. Sie können den SHA-Hash Ihres Signaturzertifikats mit dem Gradle-Befehl signingReport abrufen:
./gradlew signingReport
Weitere Informationen finden Sie unter Google APIs for Android.
Web
Sie können Ihrem vorhandenen Firebase-Projekt eine Firebase Web-App hinzufügen.
ANFRAGE
Rufen Sie
projects.webApps.create auf.
So erstellen Sie den Anfragetext:
Optional:
displayName: Der vom Nutzer zugewiesene Anzeigename der App. Dieser Wert ist nützlich , um die App später in der Firebase Console zu finden.
Nicht empfohlen:
appUrls: Die vollständig qualifizierten URLs, unter denen die App gehostet wird. Wenn eine Firebase Web-App mit einer Firebase Hosting Website verknüpft ist, werden diese Felder automatisch von Firebase ausgefüllt. Lassen Sie sie daher im Anfragetext leer.
In unserem Beispiel geben wir im Anfragetext nur einen displayName an:
{
"displayName": "My Firebase Web App"
}
Hier ist ein Beispiel für Node.js, um Ihrem Firebase-Projekt eine Firebase Web-App hinzuzufügen:
const fetch = require('node-fetch');
async function addWebApp(projectId, displayName) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/webApps';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'displayName': displayName
}),
};
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.webApps.create ist ein
Operation. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie
operations.get
für den Vorgang aufrufen, bis der Wert von done true ist und die response vom
Typ WebApp ist. Wenn der Vorgang fehlschlägt, wird error auf google.rpc.Status gesetzt.
Hier ist der Antworttext eines operations.get-Aufrufs:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.WebApp",
"name": "projects/first-cloud-project/webApps/...",
"appId": "...",
"displayName": "My Firebase Web App",
"projectId": "first-cloud-project"
}
}
Da done true ist und der response-Typ WebApp ist, hat das FirebaseProject jetzt eine WebApp. Die Antwort enthält auch andere nützliche Informationen zu Ihrer neu erstellten Firebase Web-App, z. B. die eindeutige Firebase-appId. Das Operation-Objekt wird nach Abschluss automatisch gelöscht.
Firebase-Projekt mit einem Google Analytics-Konto verknüpfen (optional)
Sie können ein vorhandenes
Google Analytics-Konto programmatisch mit Ihrem vorhandenen
FirebaseProject verknüpfen. Sie können Ihr vorhandenes
Firebase-Projekt auch auf dem Tab
Integrationen
unter Projekteinstellungen mit Google Analytics verknüpfen.
Für den Aufruf von projects.addGoogleAnalytics ist eine analytics_resource erforderlich, die entweder eine analyticsAccountId oder eine analyticsPropertyId sein kann:
Geben Sie eine vorhandene
analyticsAccountIdan, um eine neue Google Analytics-Property im angegebenen Konto bereitzustellen und die neue Property mit Ihrem Firebase-Projekt zu verknüpfen.Geben Sie eine vorhandene
analyticsPropertyIdan, um die Google Analytics-Property mit Ihrem Firebase-Projekt zu verknüpfen.
Sie finden sowohl Ihre analyticsAccountId als auch alle vorhandenen
analyticsPropertyId auf der Google Analytics
Website.
Wenn Sie projects.addGoogleAnalytics aufrufen:
Bei der ersten Prüfung wird ermittelt, ob vorhandene Datenstreams in der Google Analytics-Property mit vorhandenen Firebase-Apps in Ihrem
FirebaseProjectübereinstimmen (basierend auf der mit dem Datenstream verknüpftenpackageNameoderbundleId). Dann werden die Datenstreams und Apps nach Bedarf verknüpft. Diese automatische Verknüpfung gilt nur für Android- und iOS-Apps.Wenn keine entsprechenden Datenstreams für Ihre Firebase-Apps gefunden werden, werden in der Google Analytics-Property für jede Ihrer Firebase-Apps neue Datenstreams bereitgestellt. Für eine Web-App wird immer ein neuer Datenstream bereitgestellt, auch wenn sie zuvor mit einem Datenstream in Ihrer Analytics-Property verknüpft war.
Weitere Informationen zur Hierarchie und Struktur von Google Analytics-Konten finden Sie in der Analytics-Dokumentation.
ANFRAGE
Rufen Sie
projects.addGoogleAnalytics auf.
Im Anfragetext für unseren Beispielaufruf von project.addGoogleAnalytics geben wir unsere Google Analytics-Konto-analyticsAccountId an. Bei diesem Aufruf wird eine neue Google Analytics-Property bereitgestellt und mit dem FirebaseProject verknüpft.
{
"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 erfolgreich sein.
Um zu prüfen, ob der Vorgang erfolgreich war, können Sie operations.get für den Vorgang aufrufen, bis der Wert von done true ist und die response vom Typ analyticsDetails ist. Wenn der Vorgang fehlschlägt, wird error auf google.rpc.Status gesetzt.
Hier ist der Antworttext eines operations.get-Aufrufs:
{
"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, ist das FirebaseProject jetzt mit dem angegebenen Google Analytics-Konto verknüpft. Das Operation-Objekt wird nach Abschluss automatisch gelöscht.