Interfejs Firebase Management REST API umożliwia programowe konfigurowanie projektów Firebase i zarządzanie nimi, w tym zasobami Firebase i aplikacjami Firebase.
Ten przegląd opisuje ogólny proces dodawania zasobów i aplikacji Firebase do istniejącego Google Cloudprojektu, 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
- Łączenie projektu Firebase z kontem Google Analytics
Zanim wykonasz jakiekolwiek czynności 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) 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 jeszcze tego nie zrobisz, musisz włączyć interfejs Firebase Management API, aby używać go w projekcie Google Cloud.
- Otwórz stronę Firebase Management API w Konsoli interfejsów API Google.
- Gdy pojawi się 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 w języku Node.js, który pobiera token dostępu.
Najpierw, jeśli nie jesteś w środowisku Google Cloud, 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 na podstawie danych logowania 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żna dodać usługi Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer availableProjects.list
.
Treść żądania w przypadku tego wywołania musi być pusta.
Oto przykład w Node.js, który umożliwia wysłanie żądania listy dostępnych Google Cloudprojektów:
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 na wywołanie funkcji availableProjects.list
zawiera listę obiektów ProjectInfo
. Jeśli lista projektów jest zbyt długa, treść odpowiedzi zawiera też parametr nextPageToken
, którego możesz użyć jako parametru zapytania, aby uzyskać następną stronę projektów.
Oto przykładowa treść 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"
}
]
}
W tym przykładzie odpowiedzi znajdują się 2 Google Cloud projekty, do których można dodać usługi Firebase. Pamiętaj, że pole project
zawiera globalnie unikalną nazwę zasobu projektu.
Możesz użyć dowolnej project
wartości wymienionej w odpowiedziavailableProjects.list
, aby dodać usługi Firebase lub aplikacje do projektu.
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 projektów może korzystać z usług oferowanych przez Firebase. W tej sekcji dowiesz się, jak programowo dodać usługi Firebase do istniejącego projektuGoogle Cloud. Pamiętaj, że możesz też dodać usługi Firebase do istniejącego projektu Google Cloud w Firebase konsoli.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.addFirebase
.
Treść żądania w przypadku tego wywołania musi być pusta.
Oto przykład dla Node.js, który pokazuje, jak dodać usługi Firebase do Google Cloudprojektu:
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
Wynikiem wywołania funkcji projects.addFirebase
jest Operation
. Zanim wywołasz inne punkty końcowe związane z Firebase w swoim projekcie, operacja musi się zakończyć powodzeniem.
Aby sprawdzić, czy operacja się powiodła, możesz wywołać
operations.get
w przypadku operacji, dopóki wartość done
nie będzie równa true
, a jej response
nie będzie typu FirebaseProject
. Jeśli operacja się nie powiedzie, jej pole error
zostanie ustawione na wartość 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 FirebaseProject
, takie jak jego projectNumber
i domyślny resources
. Po zakończeniu Operation
jest automatycznie usuwany.
Dodawanie aplikacji Firebase do projektu
Z FirebaseProject
może korzystać wiele różnych aplikacji, w tym aplikacje na iOS, Androida i aplikacje internetowe. W tej sekcji dowiesz się, jak dodawać aplikacje Firebase do istniejącego programu FirebaseProject
programowo. Pamiętaj, że aplikacje Firebase możesz też dodać do istniejącego projektu Firebase w Firebase konsoli.
Wybierz typ aplikacji Firebase, którą chcesz dodać do projektu Firebase.
iOS+
Do istniejącego projektu Firebase możesz dodać aplikację na iOS Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.iosApps.create
.
Oto jak utworzyć treść żądania:
Wymagane:
bundleId
: kanoniczny identyfikator pakietu aplikacji na iOS, który pojawia się w App Store.
Opcjonalne, ale zalecane:
displayName
: nazwa wyświetlana aplikacji przypisana przez użytkownika. Ta wartość jest przydatna do późniejszego znajdowania aplikacji w Firebase konsoli.appStoreId
: automatycznie wygenerowany identyfikator Apple ID przypisany do aplikacji przez Apple. PodajappStoreId
, jeśli został już przypisany przez Apple.
W treści żądania w naszym przykładzie użyjemy tylko displayName
i bundleId
:
{
"displayName": "My Firebase iOS App",
"bundleId": "com.firebase.ios"
}
Oto przykład w Node.js, który pokazuje, jak dodać aplikację na iOS Firebase do projektu Firebase:
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']);
}
}
WYNIK
Wynikiem wywołania funkcji projects.iosApps.create
jest Operation
. Zanim wywołasz inne punkty końcowe związane z Firebase w swoim projekcie, operacja musi się zakończyć powodzeniem.
Aby sprawdzić, czy operacja się powiodła, możesz wywołać
operations.get
na operacji, dopóki wartość done
nie będzie równa true
, a jej response
nie będzie typu IosApp
. Jeśli operacja się nie powiedzie, jej pole error
zostanie ustawione na wartość google.rpc.Status
.
Oto treść odpowiedzi na wywołanie operations.get
:
{
"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"
}
}
Ponieważ done
to true
, a typ response
to IosApp
, FirebaseProject
ma teraz IosApp
. Odpowiedź zawiera też inne przydatne informacje o nowo utworzonej aplikacji Firebase na iOS, np. unikalny identyfikator FirebaseappId
. Operation
jest automatycznie usuwany po zakończeniu.
Android
Do istniejącego projektu Firebase możesz dodać aplikację na Androida Firebase.
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ść jest przydatna do późniejszego znajdowania aplikacji w Firebase konsoli.
W treści żądania w naszym przykładzie użyjemy tych wartości: packageName
i displayName
.
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Oto przykład w Node.js, który pokazuje, jak dodać aplikację 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
Wynikiem wywołania funkcji projects.androidApps.create
jest Operation
. Zanim wywołasz inne punkty końcowe związane z Firebase w swoim projekcie, operacja musi się zakończyć powodzeniem.
Aby sprawdzić, czy operacja się powiodła, możesz wywołać
operations.get
w przypadku operacji, dopóki wartość done
nie będzie równa true
, a jej response
nie będzie typu AndroidApp
. Jeśli operacja się nie powiedzie, jej pole error
zostanie ustawione na wartość 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
, FirebaseProject
ma teraz AndroidApp
. Odpowiedź zawiera też inne przydatne informacje o nowo utworzonej aplikacji Firebase na Androida, np. unikalny identyfikator Firebase appId
. Operation
jest automatycznie usuwany po zakończeniu.
Dodawanie certyfikatów SHA
Certyfikaty SHA możesz dodać do dowolnej istniejącej aplikacji na Androida w Firebase, wywołując
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 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 gradle signingReport
:
./gradlew signingReport
Więcej informacji znajdziesz na stronie Interfejsy API Google na Androida.
Sieć
Do istniejącego projektu Firebase możesz dodać aplikację internetową Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń pod numer projects.webApps.create
.
Oto jak utworzyć treść żądania:
Opcjonalnie:
displayName
: nazwa wyświetlana aplikacji przypisana przez użytkownika. Ta wartość jest przydatna do późniejszego znajdowania aplikacji w Firebase konsoli.
Niezalecane:
appUrls
: pełne adresy URL, pod którymi hostowana jest aplikacja. Gdy aplikacja internetowa Firebase jest powiązana z witryną Firebase Hosting, Firebase automatycznie wypełnia te pola, więc pozostaw je puste w treści żądania.
W treści żądania w naszym przykładzie podamy tylko displayName
:
{
"displayName": "My Firebase Web App"
}
Oto przykład dodawania aplikacji internetowej Firebase do projektu Firebase w Node.js:
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']);
}
}
WYNIK
Wynikiem wywołania funkcji projects.webApps.create
jest Operation
. Zanim wywołasz inne punkty końcowe związane z Firebase w swoim projekcie, operacja musi się zakończyć powodzeniem.
Aby sprawdzić, czy operacja się powiodła, możesz wywołać
operations.get
na operacji, dopóki wartość done
nie będzie równa true
, a jej response
nie będzie typu WebApp
. Jeśli operacja się nie powiedzie, jej pole error
zostanie ustawione na wartość google.rpc.Status
.
Oto treść odpowiedzi na wywołanie operations.get
:
{
"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"
}
}
Ponieważ done
to true
, a typ response
to WebApp
, element FirebaseProject
ma teraz WebApp
. Odpowiedź zawiera też inne przydatne informacje o nowo utworzonej aplikacji internetowej Firebase, np. unikalny identyfikator Firebase appId
. Operation
jest automatycznie usuwany po zakończeniu.
Łączenie projektu Firebase z kontem Google Analytics (opcjonalnie)
Możesz połączyć dotychczasowe konto Google Analytics z dotychczasowym kontem FirebaseProject
za pomocą kodu. Pamiętaj, że możesz też połączyć dotychczasowy projekt Firebase z Google Analytics na karcie Integracje w Ustawieniach projektu.
Wywołanie funkcji projects.addGoogleAnalytics
wymaga podania wartości analytics_resource
, która może być wartością analyticsAccountId
lub analyticsPropertyId
:
Wskaż istniejące
analyticsAccountId
, aby utworzyć nową usługę Google Analytics na określonym koncie i powiązać ją z projektem Firebase.Wskaż istniejącą
analyticsPropertyId
, aby powiązać usługę Google Analytics z projektem Firebase.
Zarówno analyticsAccountId
, jak i wszystkie dotychczasowe analyticsPropertyId
znajdziesz w witrynie Google Analytics.
Gdy zadzwonisz pod numer projects.addGoogleAnalytics
:
Pierwsze sprawdzenie określa, czy istniejące strumienie danych w usłudze Google Analytics odpowiadają istniejącym aplikacjom Firebase na Twoim koncie
FirebaseProject
(na podstawiepackageName
lubbundleId
powiązanych ze strumieniem danych). Następnie strumienie danych i aplikacje są łączone (w odpowiednich przypadkach). Pamiętaj, że automatyczne linkowanie dotyczy tylko aplikacji na Androida i iOS.Jeśli nie zostaną znalezione odpowiednie strumienie danych dla aplikacji Firebase, w usłudze Google Analytics zostaną utworzone nowe strumienie danych dla każdej z aplikacji Firebase. Pamiętaj, że w przypadku aplikacji internetowej zawsze tworzony jest nowy strumień danych, nawet jeśli była ona wcześniej powiązana 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 treści żądania w naszym przykładowym wywołaniu project.addGoogleAnalytics
podamy nasze konto Google Analytics analyticsAccountId
. To wywołanie spowoduje utworzenie nowej usługi w Google Analytics i powiązanie jej z FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Oto przykład w Node.js, który pokazuje, jak połączyć projekt Firebase z kontem Google Analytics:
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
Wynikiem wywołania funkcji projects.addGoogleAnalytics
jest Operation
. Zanim wywołasz inne punkty końcowe związane z Firebase w swoim projekcie, operacja musi się zakończyć powodzeniem.
Aby sprawdzić, czy operacja się powiodła, możesz wywołać funkcję operations.get
na operacji, dopóki wartość done
nie będzie równa true
, a response
nie będzie typu analyticsDetails
. Jeśli operacja się nie powiedzie, jej pole error
zostanie ustawione na wartość 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ż warunek done
jest spełniony, a typ response
to analyticsDetails
, usługa FirebaseProject
jest teraz połączona z określonym kontem Google Analytics. Operation
jest automatycznie usuwany po zakończeniu.