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.
Do istniejącego projektu Firebase możesz dodać aplikację Firebase na Androida.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.androidApps.create
.
Oto jak utworzyć treść żądania:
Wymagane:
packageName
: kanoniczna nazwa pakietu aplikacji na Androida, która będzie widoczna w Konsoli Play.
Opcjonalne, ale zalecane:
displayName
: nazwa wyświetlana aplikacji przypisana przez użytkownika. Ta wartość ułatwia późniejsze znalezienie aplikacji w konsoli Firebase.
W treści żądania w naszym przykładzie użyjemy packageName
i displayName
:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Oto przykład kodu Node.js służącego do dodawania aplikacji na Androida do projektu Firebase:
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']);
}
}
WYNIK
Wynik połączenia z projects.androidApps.create
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 AndroidApp
. 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.AndroidApp",
"name": "projects/first-cloud-project/androidApps/...",
"appId": "...",
"displayName": "My Firebase Android App",
"projectId": "first-cloud-project",
"packageName": "com.firebase.android"
}
}
Ponieważ done
to true
, a typ response
to AndroidApp
, obiekt FirebaseProject
ma teraz AndroidApp
. Odpowiedź zawiera też inne przydatne informacje o nowo utworzonej aplikacji Firebase na Androida, takie jak unikalny identyfikator appId
. Operation
zostanie automatycznie usunięty po zakończeniu.
Dodawanie certyfikatów SHA
Możesz dodać certyfikaty SHA do dowolnej istniejącej aplikacji Firebase na Androida, wywołując funkcję projects.androidApps.sha.create
.
Treść żądania w przypadku tego wywołania metody musi zawierać puste pole name
.
Wynikiem tego wywołania jest nowo utworzona instancja funkcji ShaCertificate
.
Podczas wywoływania funkcji projects.androidApps.sha.create
musisz podać prawidłowy hasz certyfikatu SHA-1 lub SHA-256. Hasz SHA certyfikatu podpisywania możesz uzyskać za pomocą polecenia signingReport
w Gradle:
./gradlew signingReport
Więcej informacji znajdziesz w artykule Interfejsy API Google na Androida.
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.