Interfejs Firebase Management API REST umożliwia konfigurowanie projektów Firebase i zarządzanie nimi w sposób zautomatyzowany, w tym zasobami Firebase i aplikacjami Firebase.
W tym omówieniu opisano ogólny przepływ pracy związany z dodawaniem zasobów i aplikacji Firebase do istniejącego projektu Google Cloud, który nie korzysta jeszcze z usług Firebase.
Możesz przejść do wybranej sekcji tej strony, jeśli chcesz:
- Dodawanie usług Firebase do projektu
- Dodawanie aplikacji Firebase do projektu Firebase
- Połącz projekt Firebase z kontem Google Analytics
Zanim wykonasz czynności opisane na tej stronie, włącz interfejs API.
Informacje o zarządzaniu dostępem do interfejsu Firebase Management API znajdziesz w dokumentacji interfejsu Cloud Identity Access Management (IAM).
Zanim zaczniesz
Zanim zaczniesz, musisz włączyć interfejs Management API w projekcie Google Cloud i wygenerować token dostępu.
Włączanie interfejsu Management API typu REST w projekcie Google Cloud
Jeśli nie masz jeszcze włączonego interfejsu Firebase Management API, musisz go włączyć do użycia w projekcie Google Cloud.
- Otwórz stronę Interfejs API zarządzania Firebase w konsoli interfejsów API Google.
- Gdy pojawi się taka prośba, wybierz projekt Google Cloud.
- Kliknij Włącz na stronie interfejsu Firebase Management API.
Generowanie tokena dostępu do interfejsu API
Oto przykład środowiska Node.js, które pobiera Twój token dostępu.
Najpierw, jeśli nie korzystasz z środowiska Google Cloud, ustaw zmienną środowiskową GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę do klucza konta usługi.
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
W PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Następnie użyj pakietu Firebase Admin SDK, aby uzyskać token dostępu z danych logowania do konta usługi:
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);
});
}
Znajdowanie nazwy zasobu projektu
Możesz znaleźć Google Cloud projekty, do których możesz dodać usługi Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer availableProjects.list
.
Treść żądania w tym wywołaniu musi być pusta.
Oto przykład żądania Node.js z żądaniem listy dostępnych projektów Google Cloud:
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);
}
}
WYNIK
Treść odpowiedzi z wywołania funkcji availableProjects.list
zawiera listę obiektów ProjectInfo
. Jeśli lista projektów jest zbyt długa, treść odpowiedzi zawiera też atrybut nextPageToken
, którego możesz użyć jako parametru zapytania, aby wyświetlić następną stronę projektów.
Oto przykładowa treść odpowiedzi wywołania availableProjects.list
:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Ta przykładowa odpowiedź zawiera 2 projekty Google Cloud, do których można dodać usługi Firebase. Pamiętaj, że pole project
zawiera globalnie unikalną nazwę zasobu dla projektu.
Aby dodać usługi Firebase lub dodać aplikacje do projektu, możesz użyć dowolnej wartości project
podanej w odpowiedzi z availableProjects.list
.
W następnej sekcji dodamy usługi Firebase do zasobu First Cloud Project
przy użyciu nazwy zasobu projects/first-gcp-project
.
Dodaj usługi Firebase do projektu
Google Cloud mogą korzystać z usług oferowanych przez Firebase. Z tej sekcji dowiesz się, jak automatycznie dodawać usługi Firebase do istniejącego projektu Google Cloud. Możesz też dodać usługi Firebase do istniejącego projektu Google Cloud w konsoli Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.addFirebase
.
Treść żądania tego wywołania musi być pusta.
Oto przykład dodawania usług Firebase do projektu Google Cloud w Node.js:
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']);
}
}
WYNIK
Wynik wywołania projects.addFirebase
to Operation
. Zanim będzie można wywoływać inne punkty końcowe związane z Firebase w Twoim projekcie, operacja musi się powieść.
Aby sprawdzić, czy operacja się udała, możesz wywołać w niej metodę operations.get
, dopóki wartość done
nie będzie miała true
, a jej response
będzie typu FirebaseProject
. Jeśli operacja się nie powiedzie, wartość error
zostanie ustawiona na google.rpc.Status
.
Oto treść odpowiedzi na wywołanie 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"
}
}
}
Ponieważ done
to true
, a typ response
to FirebaseProject
, projekt Google Cloud ma teraz usługi Firebase. Odpowiedź zawiera też inne przydatne informacje o nowo utworzonym elemencie FirebaseProject
, np. jego projectNumber
i domyślna wartość resources
. Po zakończeniu Operation
zostanie automatycznie usunięty.
Dodaj aplikacje Firebase do projektu
Z FirebaseProject
może korzystać wiele różnych aplikacji, w tym aplikacje na iOS i Androida oraz aplikacje internetowe. Z tej sekcji dowiesz się, jak dodać aplikacje Firebase do istniejącej FirebaseProject
za pomocą programowania. Możesz też dodać aplikacje Firebase do istniejącego projektu Firebase, korzystając z konsoli Firebase.
Wybierz typ aplikacji Firebase, którą chcesz dodać do projektu Firebase.
Połącz projekt Firebase z kontem Google Analytics (opcjonalnie)
Możesz automatycznie połączyć istniejące konto Google Analytics z dotychczasowym FirebaseProject
. Pamiętaj, że możesz też połączyć dotychczasowy projekt Firebase z Google Analytics na karcie Integracje w sekcji Ustawienia projektu.
Wywołanie funkcji projects.addGoogleAnalytics
wymaga parametru analytics_resource
, który może być parametrem analyticsAccountId
lub analyticsPropertyId
:
Podaj istniejący
analyticsAccountId
, aby utworzyć nową usługę Google Analytics na określonym koncie i połączyć ją z projektem Firebase.Podaj istniejący element
analyticsPropertyId
, aby powiązać usługę w Google Analytics z projektem Firebase.
Zarówno analyticsAccountId
, jak i istniejące analyticsPropertyId
znajdziesz na stronie Google Analytics.
Gdy zadzwonisz pod numer projects.addGoogleAnalytics
:
Pierwsza kontrola określa, czy istniejące strumienie danych w usłudze w Google Analytics odpowiadają istniejącym aplikacjom Firebase w Twoim koncie
FirebaseProject
(na podstawie identyfikatorapackageName
lubbundleId
powiązanego ze strumieniem danych). Następnie, w odpowiednich przypadkach, strumienie danych i aplikacje są łączone. Pamiętaj, że to łączenie automatyczne dotyczy tylko aplikacji na Androida i iOS.Jeśli nie znajdziemy odpowiednich strumieni danych dla Twoich aplikacji Firebase, dla każdej z nich zostaną udostępnione w usłudze Google Analytics nowe strumienie danych. Pamiętaj, że dla aplikacji internetowej jest zawsze udostępniany nowy strumień danych, nawet jeśli był on wcześniej powiązany ze strumieniem danych w Twojej usłudze w Analytics.
Więcej informacji o hierarchii i strukturze kont Google Analytics znajdziesz w dokumentacji Analytics.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.addGoogleAnalytics
.
W ciele żądania w przykładzie wywołania funkcji project.addGoogleAnalytics
podajemy konto Google Analytics analyticsAccountId
. To wywołanie uruchomi nową usługę w Google Analytics i powiąże ją z usługą FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Oto przykład połączenia projektu Firebase z kontem Google Analytics za pomocą Node.js:
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']);
}
}
WYNIK
Wynik wywołania projects.addGoogleAnalytics
to Operation
. Zanim będzie można wywołać w projekcie inne punkty końcowe związane z Firebase, operacja musi się zakończyć.
Aby sprawdzić, czy operacja się powiedzie, możesz wywołać funkcję operations.get
w operacji, aż wartość done
będzie równa true
, a pole response
będzie miało typ analyticsDetails
. Jeśli operacja się nie powiedzie, wartość error
zostanie ustawiona na google.rpc.Status
.
Oto treść odpowiedzi wywołania operations.get
:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
Ponieważ done
ma wartość prawda, a typ response
to analyticsDetails
, konto FirebaseProject
jest teraz połączone z określonym kontem Google Analytics. Po zakończeniu Operation
jest automatycznie usuwany.