Konfigurowanie projektu Firebase i zarządzanie nim za pomocą interfejsu Management REST API

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 do istniejącej platformy Google Cloud projekt który obecnie nie korzysta z usług Firebase.

Możesz przejść do wybranej sekcji tej strony, jeśli chcesz:

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 projekt Google Cloud wygeneruj swój 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.

  1. Otwórz aplikację Interfejs API zarządzania Firebase w konsoli interfejsów API Google.
  2. Gdy pojawi się taka prośba, wybierz projekt Google Cloud.
  3. 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.

Po pierwsze, jeśli nie korzystasz ze środowiska Google Cloud, ustaw parametr GOOGLE_APPLICATION_CREDENTIALS zmienna środowiskowa 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 znaleźć 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 usług 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ą zawierać 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

Projekty Google Cloud mogą wykorzystywać usługi oferowane przez Firebase. W W tej sekcji dowiesz się, jak dodać usługi Firebase do istniejących Projekt Google Cloud 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 środowiska Node.js, który pozwala 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 Projekt Google Cloud zawiera teraz 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 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:

  1. Pierwsze sprawdzenie pozwala określić, czy w Google są jakieś strumienie danych Usługa Analytics odpowiada aplikacjom Firebase FirebaseProject (na podstawie pola packageName lub bundleId 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.

  2. 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 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 Konsola 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ślną 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 to 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, takiego jak 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.