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.
Ten przegląd opisuje ogólny proces dodawania zasobów i aplikacji Firebase do istniejącego projektu Google Cloud, który nie korzysta jeszcze z usług Firebase.
Możesz przejść do konkretnych 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 w usłudze Firebase Management API znajdziesz w dokumentacji Cloud Identity and Access Management (IAM) API.
Zanim zaczniesz
Zanim zaczniesz, musisz włączyć interfejs Management API w projekcie Google Cloud i wygenerować token dostępu.
Włączanie interfejsu Management REST API 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.
- Na stronie interfejsu Firebase Management API kliknij Włącz.
Generowanie tokena dostępu do interfejsu API
Oto przykład kodu Node.js, który pobiera token dostępu.
Jeśli nie jesteś w środowisku Google Cloud, najpierw ustaw zmienną środowiskową GOOGLE_APPLICATION_CREDENTIALS
na ścieżkę do klucza konta usługi.
Linux lub macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
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ładowy kod Node.js służący do żądania 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ż parametr nextPageToken
, który możesz użyć jako parametr zapytania, aby pobrać kolejną stronę z projektami.
Oto przykład treści odpowiedzi na wywołanie 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 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 First Cloud Project
, używając nazwy zasobu projects/first-gcp-project
.
Dodawanie usług Firebase do projektu
Google Cloud mogą korzystać z usług oferowanych przez Firebase. W tej sekcji dowiesz się, jak dodać usługi Firebase do istniejącego projektu Google Cloud za pomocą programowania. Pamiętaj, że usługi Firebase możesz też dodać do istniejącego projektu Google Cloud w konsoli Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.addFirebase
.
Treść żądania w tym wywołaniu 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 połączenia z numerem 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ę powiedzie, możesz wywołać funkcję operations.get
w operacji, dopóki wartość done
nie będzie równa true
, a wartość response
nie 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 utworzonej FirebaseProject
, takie jak projectNumber
i domyślna resources
. Po zakończeniu Operation
zostanie automatycznie usunięty.
Dodawanie aplikacji Firebase do projektu
FirebaseProject
może używać wiele różnych aplikacji, w tym aplikacji na iOS, Androida i aplikacji internetowych. Z tej sekcji dowiesz się, jak dodać aplikacje Firebase do istniejącej FirebaseProject
za pomocą programowania. Pamiętaj, że aplikacje Firebase możesz też dodać do dotychczasowego projektu Firebase w konsoli Firebase.
Wybierz typ aplikacji Firebase, którą chcesz dodać do projektu Firebase.
Połącz projekt Firebase z kontem Google Analytics (opcjonalnie)
Możesz połączyć dotychczasowe konto Google Analytics z dotychczasowym kontem FirebaseProject
za pomocą programowania. 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ę Google Analytics z projektem Firebase.
Zarówno analyticsAccountId
, jak i istniejące analyticsPropertyId
znajdziesz na stronie Google Analytics.
Kiedy dzwonić do 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 automatyczne linkowanie dotyczy tylko aplikacji na Androida i iOS.Jeśli nie znajdziemy odpowiednich strumieni danych dla Twoich aplikacji Firebase, w usłudze w Google Analytics zostaną utworzone nowe strumienie danych dla każdej z nich. Pamiętaj, że nowy strumień danych jest zawsze udostępniany dla aplikacji internetowej, nawet jeśli był wcześniej powiązany ze strumieniem danych w usłudze 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
. Ten wywołanie zarezerwuje 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ływać inne punkty końcowe związane z Firebase w Twoim projekcie, operacja musi się powieść.
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 na wywołanie 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ść true, a typ response
to analyticsDetails
, obiekt FirebaseProject
jest teraz połączony z wybranym kontem Google Analytics. Po zakończeniu Operation
jest automatycznie usuwany.