Die Firebase Management REST API ermöglicht die programmgesteuerte Einrichtung und Verwaltung von Firebase-Projekten, einschließlich der Firebase-Ressourcen und Firebase-Apps eines Projekts.
In dieser Übersicht wird der allgemeine Arbeitsablauf zum Hinzufügen von Firebase-Ressourcen und -Apps zu einem vorhandenen Google Cloud-Projekt beschrieben, das derzeit keine Firebase-Dienste verwendet.
Sie können zu bestimmten Abschnitten dieser Seite springen, wenn Sie Folgendes möchten:
- Fügen Sie Ihrem Projekt Firebase-Dienste hinzu
- Fügen Sie Firebase-Apps zu Ihrem Firebase-Projekt hinzu
- Verknüpfen Sie Ihr Firebase-Projekt mit einem Google Analytics-Konto
- Legen Sie den Standardspeicherort Ihres Projekts fest
Bevor Sie die Schritte auf dieser Seite ausführen, stellen Sie sicher, dass 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 .
Bevor Sie beginnen
Bevor Sie beginnen, müssen Sie die Verwaltungs-API für Ihr Google Cloud-Projekt aktivieren und Ihr Zugriffstoken generieren .
Aktivieren Sie die Management-REST-API für Ihr Google Cloud-Projekt
Falls Sie dies noch nicht getan haben, 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-Konsole.
- Wählen Sie bei Aufforderung Ihr Google Cloud-Projekt aus.
- Klicken Sie auf der Seite Firebase Management API auf Aktivieren .
Generieren Sie Ihr API-Zugriffstoken
Hier ist ein Beispiel für Node.js, das Ihr Zugriffstoken abruft.
Wenn Sie sich nicht in einer Google Cloud-Umgebung befinden, legen Sie zunächst die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
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 den Anmeldeinformationen Ihres Dienstkontos abzurufen:
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);
});
}
Suchen Sie den Ressourcennamen Ihres Projekts
Sie finden die Google Cloud-Projekte, die zum Hinzufügen von Firebase-Diensten verfügbar sind.
ANFRAGE
Rufen Sie availableProjects.list
auf. Der Anforderungstext 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 der Projekte abzurufen.
Hier ist ein Beispielantworttext 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. Beachten Sie, dass das project
den global eindeutigen Ressourcennamen für ein Projekt bereitstellt.
Sie können jeden in der Antwort von availableProjects.list
aufgeführten project
verwenden, um Firebase-Dienste oder Apps zu Ihrem Projekt hinzuzufügen .
Im nächsten Abschnitt fügen wir Firebase-Dienste zu First Cloud Project
hinzu, indem wir den Ressourcennamen projects/first-gcp-project
verwenden.
Fügen Sie Ihrem Projekt Firebase-Dienste hinzu
Google Cloud-Projekte können die von Firebase angebotenen Dienste nutzen. In diesem Abschnitt erfahren Sie, wie Sie Firebase-Dienste programmgesteuert zu Ihrem bestehenden Google Cloud-Projekt hinzufügen. Beachten Sie, dass Sie Firebase-Dienste auch in der Firebase-Konsole zu Ihrem bestehenden Google Cloud-Projekt hinzufügen können.
ANFRAGE
Rufen Sie projects.addFirebase
auf. Der Anforderungstext für diesen Aufruf muss leer sein.
Hier ist ein Beispiel für Node.js zum Hinzufügen von Firebase-Diensten zu Ihrem Google Cloud-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 eine Operation
. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu überprüfen, ob der Vorgang erfolgreich ist, können Sie operations.get
für den Vorgang aufrufen, bis der Wert „ done
“ „ true
ist und die response
vom Typ FirebaseProject
ist. Wenn der Vorgang fehlschlägt, wird der 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
den Wert true
hat und der response
ein FirebaseProject
ist, verfügt das Google Cloud-Projekt jetzt über Firebase-Dienste. Die Antwort enthält außerdem weitere nützliche Informationen zu Ihrem neu erstellten FirebaseProject
, etwa dessen projectNumber
und seine resources
. Der Operation
wird nach Abschluss automatisch gelöscht.
Fügen Sie Ihrem Projekt Firebase-Apps hinzu
Viele verschiedene Apps können ein FirebaseProject
verwenden, darunter iOS-, Android- und Web-Apps. In diesem Abschnitt erfahren Sie, wie Sie Firebase Apps programmgesteuert zu Ihrem vorhandenen FirebaseProject
hinzufügen. Beachten Sie, dass Sie Firebase-Apps auch in der Firebase-Konsole zu Ihrem bestehenden Firebase-Projekt hinzufügen können.
Wählen Sie einen Firebase-App-Typ aus, den Sie Ihrem Firebase-Projekt hinzufügen möchten.
Sie können Ihrem bestehenden Firebase-Projekt eine Firebase-Android-App hinzufügen.
ANFRAGE
Rufen Sie projects.androidApps.create
auf. So erstellen Sie Ihren Anfragetext:
Erforderlich:
-
packageName
: Der kanonische Paketname der Android-App, wie er in der Google Play Developer Console angezeigt würde.
-
Optional, aber empfohlen:
-
displayName
: Der vom Benutzer zugewiesene Anzeigename der App. Dieser Wert ist nützlich, um Ihre App später in der Firebase-Konsole 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 zum Hinzufügen einer Firebase-Android-App zu Ihrem Firebase-Projekt:
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 eine Operation
. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu überprüfen, ob der Vorgang erfolgreich ist, können Sie operations.get
für den Vorgang aufrufen, bis der Wert „ done
“ „ true
ist und die response
vom Typ AndroidApp
ist. Wenn der Vorgang fehlschlägt, wird der 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
ein AndroidApp
ist, verfügt das FirebaseProject
jetzt über einen AndroidApp
. Die Antwort enthält außerdem weitere nützliche Informationen zu Ihrer neu erstellten Firebase-Android-App, beispielsweise die eindeutige Firebase- appId
. Der Operation
wird nach Abschluss automatisch gelöscht.
Fügen Sie SHA-Zertifikate hinzu
Sie können SHA-Zertifikate zu jeder vorhandenen Firebase-Android-App hinzufügen, indem Sie projects.androidApps.sha.create
aufrufen. Der Anforderungstext für diesen Methodenaufruf muss ein leeres name
enthalten. 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-Zertifikat-Hash angeben. Sie können den SHA-Hash Ihres Signaturzertifikats mit dem Befehl gradle signingReport
abrufen:
./gradlew signingReport
Weitere Informationen finden Sie unter Google APIs für Android .
Verknüpfen Sie Ihr Firebase-Projekt mit einem Google Analytics-Konto (optional)
Sie können ein bestehendes Google Analytics-Konto programmgesteuert mit Ihrem bestehenden FirebaseProject
verknüpfen. Beachten Sie, dass Sie Ihr bestehendes Firebase-Projekt auch auf der Registerkarte „Integrationen“ Ihrer Projekteinstellungen mit Google Analytics verknüpfen können.
Der Aufruf von projects.addGoogleAnalytics
erfordert eine analytics_resource
, die entweder eine analyticsAccountId
“ oder eine „ analyticsPropertyId
sein kann:
Geben Sie eine vorhandene
analyticsAccountId
an, um eine neue Google Analytics-Property innerhalb des angegebenen Kontos bereitzustellen und die neue Property Ihrem Firebase-Projekt zuzuordnen.Geben Sie eine vorhandene
analyticsPropertyId
an, um die Google Analytics-Eigenschaft Ihrem Firebase-Projekt zuzuordnen.
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 Datenströme in der Google Analytics-Eigenschaft vorhandenen Firebase-Apps in Ihrem
FirebaseProject
entsprechen (basierend auf dempackageName
oderbundleId
die dem Datenstrom zugeordnet sind). Anschließend werden ggf. die Datenströme und Apps verknüpft. Beachten Sie, dass diese automatische Verknüpfung nur für Android-Apps und iOS-Apps gilt.Wenn für Ihre Firebase-Apps keine entsprechenden Datenströme gefunden werden, werden in der Google Analytics-Property für jede Ihrer Firebase-Apps neue Datenströme bereitgestellt. Beachten Sie, dass ein neuer Datenstrom immer für eine Web-App bereitgestellt wird, auch wenn er zuvor mit einem Datenstrom 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 an project.addGoogleAnalytics
geben wir unser Google Analytics-Konto analyticsAccountId
an. Dieser Aufruf stellt eine neue Google Analytics-Eigenschaft bereit und verknüpft die neue Eigenschaft mit dem 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 eine Operation
. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu überprüfen, ob der Vorgang erfolgreich ist, können Sie operations.get
für den Vorgang aufrufen, bis der Wert „ done
“ „ true
ist und die response
vom Typ analyticsDetails
ist. Wenn der Vorgang fehlschlägt, wird der 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
den Wert „true“ hat und der response
analyticsDetails
ist, ist das FirebaseProject
nun mit dem angegebenen Google Analytics-Konto verknüpft. Der Operation
wird nach Abschluss automatisch gelöscht.
Finalisieren Sie den Standardspeicherort Ihres Projekts (optional)
Wenn Ihr Firebase-Projekt Cloud Firestore, Cloud Storage oder eine App Engine-App verwendet, können Sie den standardmäßigen Google Cloud Platform (GCP)-Ressourcenstandort für Ihr Projekt programmgesteuert festlegen. Beachten Sie, dass Sie auch einen Speicherort in der Firebase-Konsole auswählen können.
Bevor Sie diesen Standort festlegen, lesen Sie „Standorte für Ihr Projekt auswählen“, um Informationen darüber zu erhalten, welcher Standort für Ihr Projekt am besten geeignet ist. Sie sollten auch projects.availableLocations
aufrufen, um eine Liste der gültigen Standorte für Ihr Projekt zurückzugeben, denn wenn Ihr Projekt Teil einer Google Cloud-Organisation ist, schränken Ihre Organisationsrichtlinien möglicherweise ein, welche Standorte für Ihr Projekt gültig sind.
Durch Aufrufen dieser Methode defaultLocation.finalize
wird eine App Engine-Anwendung mit einem standardmäßigen Cloud Storage-Bucket erstellt, der sich in der locationId
befindet, die Sie im Anforderungstext angeben.
Der standardmäßige GCP-Ressourcenstandort wurde möglicherweise bereits angegeben, wenn das Project
bereits über eine App Engine-Anwendung verfügt oder diese Methode defaultLocation.finalize
zuvor aufgerufen wurde.
ANFRAGE
Rufen Sie projects.defaultLocation.finalize
auf. So erstellen Sie Ihren Anfragetext:
Erforderlich:
-
locationId
: Der Ort, an dem Ihre Daten für GCP-Dienste gespeichert werden, die eine Standorteinstellung erfordern, wie Cloud Firestore oder Cloud Storage.
-
{
"locationId": "us-west2"
}
Hier ist ein Beispiel für Node.js, um den Standardspeicherort Ihres Projekts festzulegen:
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 eine Operation
. Bevor Sie andere Firebase-bezogene Endpunkte für Ihr Projekt aufrufen können, muss der Vorgang erfolgreich sein.
Um zu überprüfen, ob der Vorgang erfolgreich ist, können Sie operations.get
für den Vorgang aufrufen, bis der Wert von done
true
ist und die response
vom Typ google.protobuf.Empty
ist. Wenn der Vorgang nicht erfolgreich ist, hat der error
den Typ google.rpc.Status
. Der Operation
wird nach Abschluss automatisch gelöscht.