Interfejs API typu REST do zarządzania Firebase umożliwia zautomatyzowaną konfigurację i zarządzanie projektami Firebase, w tym zasobów Firebase i aplikacji Firebase.
W tym omówieniu opisano ogólny przepływ pracy dodawania zasobów Firebase oraz aplikacji na istniejącą Google Cloud projekt który obecnie nie korzysta 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
- Łączenie projektu Firebase z kontem Google Analytics
- Sfinalizuj domyślną lokalizację projektu
Przed wykonaniem jakichkolwiek czynności opisanych na tej stronie upewnij się, że zostały włączyć interfejs API.
Więcej informacji o zarządzaniu dostępem do interfejsu Firebase Management API znajdziesz na stronie interfejs Cloud Identity Access Management (IAM) API dokumentacji.
Zanim zaczniesz
Zanim zaczniesz, musisz włączyć interfejs API zarządzania w domenie Twój projekt Google Cloud oraz wygeneruj token dostępu.
Włączanie interfejsu Management API typu REST w projekcie Google Cloud
W razie potrzeby włącz Interfejs API zarządzania Firebase do wykorzystania w projekcie Google Cloud.
- Otwórz aplikację Interfejs API zarządzania Firebase w konsoli interfejsów API Google.
- Gdy pojawi się odpowiedni komunikat, wybierz projekt Google Cloud.
- Kliknij Włącz na stronie interfejsu Firebase Management API.
Generowanie tokena dostępu 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 wartość
GOOGLE_APPLICATION_CREDENTIALS
zmiennej środowiskowej do ścieżki do pliku
klucz konta usługi.
Linux lub macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
Za pomocą PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Następnie użyj pakietu SDK Firebase Admin, aby uzyskać token dostępu ze swojej usługi. dane logowania na konto:
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 dodać projekty (Google Cloud), do których można dodać Firebase usług Google.
WYŚLIJ PROŚBĘ
Zadzwoń do nas
availableProjects.list
Treść żądania tego wywołania musi być pusta.
Oto przykład, jak Node.js wysyła żądanie listy dostępnych Google Cloud projekty:
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 wywołania do funkcji availableProjects.list
zawiera listę
ProjectInfo
.
obiektów. Jeśli lista projektów jest zbyt długa, treść odpowiedzi zawiera też
nextPageToken
, którego możesz użyć jako parametru zapytania, aby wyświetlić następną stronę
w projektach AI.
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, które mogą korzystać z Firebase
dodane do nich usługi. Pamiętaj, że pole project
udostępnia globalną
unikalną nazwę zasobu projektu.
Możesz użyć dowolnej wartości project
podanej w odpowiedzi z
availableProjects.list
, aby dodać usługi Firebase, lub
dodaj aplikacje do projektu.
W następnej sekcji dodamy do usługi First Cloud Project
usługi Firebase za pomocą
nazwę zasobu projects/first-gcp-project
.
Dodaj usługi Firebase do projektu
Google Cloud projektów może korzystać z usług oferowanych przez Firebase. W W tej sekcji dowiesz się, jak dodać usługi Firebase do istniejących Google Cloud projekt w sposób zautomatyzowany. Pamiętaj, że możesz też dodać Firebase, z dotychczasowym projektem Google Cloud w konsoli Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń do nas
projects.addFirebase
Treść żądania tego wywołania musi być pusta.
Oto przykład, jak Node.js może dodać usługi Firebase do: 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']);
}
}
WYNIK
Wynikiem wywołania do projects.addFirebase
jest
Operation
Przed Tobą
może wywoływać inne punkty końcowe związane z Firebase w projekcie, operacja musi
odnieść sukces.
Aby sprawdzić, czy operacja się udała, możesz wywołać
operations.get
w operacji do momentu, gdy wartość done
wynosi true
, a jej response
wynosi
wpisz FirebaseProject
. Jeśli operacja się nie uda, jej element error
zostanie ustawiony na
google.rpc.Status
Oto treść odpowiedzi wywołania 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
ma wartość true
, a typ response
to FirebaseProject
, więc
W Google Cloud projekcie są teraz dostępne usługi Firebase. Odpowiedź zawiera też
inne przydatne informacje o nowo utworzonym elemencie FirebaseProject
, np.
projectNumber
i jej domyślna wartość resources
. Operation
jest automatycznie
usunięte po zakończeniu.
Dodaj aplikacje Firebase do projektu
Z FirebaseProject
może korzystać wiele różnych aplikacji, m.in. na iOS i Androida oraz w internecie.
aplikacji. W tej sekcji dowiesz się, jak dodać aplikacje Firebase do istniejących
FirebaseProject
automatycznie. Możesz też dodać aplikacje Firebase do
z dotychczasowego projektu Firebase w konsoli Firebase.
Wybierz typ aplikacji Firebase, którą chcesz dodać do projektu Firebase.
Możesz dodać aplikację Firebase na Androida do istniejącego projektu Firebase.
WYŚLIJ PROŚBĘ
Zadzwoń do nas
projects.androidApps.create
Aby utworzyć treść żądania:
Wymagane:
packageName
: kanoniczna nazwa pakietu aplikacji na Androida w takiej postaci, w jakiej widoczne w Konsoli Google Play.
Opcjonalne, ale zalecane:
displayName
: wyświetlana nazwa aplikacji przypisana przez użytkownika. Ta wartość to przydatne przy wyszukiwaniu aplikacji później w konsoli Firebase.
W treści żądania w naszym przykładzie użyjemy atrybutów packageName
i
displayName
:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Oto przykład, jak w Node.js dodać aplikację Firebase na Androida do 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']);
}
}
WYNIK
Wynikiem wywołania do projects.androidApps.create
jest
Operation
Przed Tobą
może wywoływać inne punkty końcowe związane z Firebase w projekcie, operacja musi
odnieść sukces.
Aby sprawdzić, czy operacja się udała, możesz wywołać
operations.get
w operacji do momentu, gdy wartość done
wynosi true
, a jej response
wynosi
wpisz AndroidApp
. Jeśli operacja się nie uda, jej element error
zostanie ustawiony na
google.rpc.Status
Oto treść odpowiedzi wywołania 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
, wartości
FirebaseProject
ma teraz AndroidApp
. Odpowiedź zawiera też inne
przydatnych informacji o nowo utworzonej aplikacji Firebase na Androida, takich jak
unikalne appId
Firebase. Operation
jest automatycznie usuwany po
do końca.
Dodaj certyfikaty SHA
Certyfikaty SHA możesz dodać do dowolnej istniejącej aplikacji Firebase na Androida, wywołując
projects.androidApps.sha.create
Treść żądania tego wywołania metody musi zawierać puste pole name
.
W wyniku tego wywołania powstaje nowo utworzona instancja
ShaCertificate
Dzwoniąc pod projects.androidApps.sha.create
, musisz podać prawidłowy numer
Identyfikator SHA-1 lub certyfikatu SHA-256. Możesz uzyskać hasz SHA swojego podpisu
certyfikat za pomocą polecenia Gradle signingReport
:
./gradlew signingReport
Więcej informacji znajdziesz na stronie Interfejsy API Google dla platformy na urządzeniu z Androidem.
Łączenie projektu Firebase z kontem Google Analytics (opcjonalnie)
Możesz połączyć kanał prowadzony przez
konto Google Analytics.
FirebaseProject
w sposób automatyczny. Pamiętaj, że możesz też połączyć istniejące
z projektu Firebase do Google Analytics w
Integracje
na karcie Ustawienia projektu.
Połączenie z projects.addGoogleAnalytics
wymaga analytics_resource
,
które mogą być analyticsAccountId
lub analyticsPropertyId
:
Podaj istniejący
analyticsAccountId
, aby udostępnić nową wersję Google Analytics usługę na określonym koncie i powiąż nową usługę ze swoim projekt Firebase.Podaj istniejący
analyticsPropertyId
, aby powiązać z Google Analytics z Twoim projektem Firebase.
Zarówno analyticsAccountId
, jak i wszystkie istniejące
analyticsPropertyId
w Google Analytics
Gdy zadzwonisz pod numer projects.addGoogleAnalytics
:
Pierwsza weryfikacja pozwala określić, czy w Google są jakieś strumienie danych Usługa Analytics odpowiada aplikacjom Firebase
FirebaseProject
(na podstawie polapackageName
lubbundleId
powiązanego z strumienia danych). Następnie, w zależności od sytuacji, 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, nowe dane strumienie są udostępniane w usłudze w Google Analytics dla każdego z Twoich Aplikacje Firebase. Pamiętaj, że nowy strumień danych jest zawsze udostępniany w przypadku sieci. z aplikacją, nawet jeśli była wcześniej powiązana ze strumieniem danych na Twoim usłudze w Analytics.
Więcej informacji o hierarchii i strukturze kont Google Analytics znajdziesz w dokumentacji Analytics.
WYŚLIJ PROŚBĘ
Zadzwoń do nas
projects.addGoogleAnalytics
W treści żądania przykładowego wywołania project.addGoogleAnalytics
zostanie
określić nasze konto Google Analytics analyticsAccountId
. Ta rozmowa
udostępnić nową usługę w Google Analytics i powiązać ją z
FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Oto przykład użycia środowiska Node.js do łączenia projektu Firebase z Google Analytics konto:
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 do projects.addGoogleAnalytics
jest
Operation
Przed Tobą
może wywoływać inne punkty końcowe związane z Firebase w projekcie, operacja musi
odnieść sukces.
Aby sprawdzić, czy operacja się udała, możesz wywołać funkcję operations.get
w
do czasu, aż wartość done
będzie miała true
i response
będzie typu
analyticsDetails
. Jeśli operacja się nie uda, jej element error
zostanie ustawiony 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
, argument
Usługa FirebaseProject
jest teraz połączona z podanym kontem Google Analytics.
Po zakończeniu kursu Operation
zostanie automatycznie usunięty.
Sfinalizuj domyślną lokalizację projektu (opcjonalnie)
Jeśli Twój projekt Firebase będzie używać Cloud Firestore, Cloud Storage lub aplikacji App Engine, możesz sfinalizować domyślną wersję Google Cloud Lokalizacja zasobów platformy (GCP) w swoim projekcie. Pamiętaj, że możesz też wybrać lokalizację w Firebase.
.Zanim ustawisz tę lokalizację, przeczytaj sekcję Wybierz lokalizacje dla
projektu, by dowiedzieć się, jaka lokalizacja
do swojego projektu. Zadzwoń też
projects.availableLocations
zwraca listę prawidłowych lokalizacji projektu, ponieważ jeśli projekt
należy do organizacji Google Cloud, Twoje zasady organizacji
może ograniczać dostęp do lokalizacji
są prawidłowe w Twoim projekcie.
Wywołanie tej metody defaultLocation.finalize
powoduje utworzenie App Engine.
aplikacja z domyślnym ustawieniem Cloud Storage
zasobnik
znajduje się w
locationId
.
podany w treści żądania.
Domyślna lokalizacja zasobu GCP mogła już zostać określona, jeśli
Project
ma już aplikację App Engine lub tę
Metoda defaultLocation.finalize
została wcześniej wywołana.
WYŚLIJ PROŚBĘ
Zadzwoń do nas
projects.defaultLocation.finalize
Aby utworzyć treść żądania:
Wymagane:
locationId
: lokalizacja, w której są przechowywane Twoje dane dla usług GCP. które wymagają ustawienia lokalizacji, np. Cloud Firestore lub Cloud Storage
{
"locationId": "us-west2"
}
Oto przykład, w którym Node.js finalizuje domyślną lokalizację projektu:
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']);
}
}
WYNIK
Wynikiem wywołania do projects.defaultLocation.finalize
jest
Operation
Przed Tobą
może wywoływać inne punkty końcowe związane z Firebase w projekcie, operacja musi
odnieść sukces.
Aby sprawdzić, czy operacja się udała, możesz wywołać funkcję operations.get
na
do czasu, aż wartość done
będzie miała true
i jej response
będzie typu
google.protobuf.Empty
. Jeśli operacja się nie powiedzie, treść odpowiedzi
error
będzie typu google.rpc.Status
. Operation
jest automatycznie
usunięte po zakończeniu.