Management REST API'yi kullanarak Firebase projesi oluşturma ve yönetme

Firebase Management REST API, dahil olmak üzere Firebase projelerinin programatik kurulumu ve yönetimi. Firebase kaynakları ve Firebase Uygulamaları.

Bu genel bakışta, Firebase kaynaklarını eklemek için genel iş akışı açıklanmaktadır ve uygulamalarını mevcut bir Google Cloud proje Firebase hizmetlerini kullanmıyor.

Aşağıdakileri yapmak istiyorsanız bu sayfanın belirli bölümlerine atlayabilirsiniz:

Bu sayfadaki herhangi bir adımı uygulamadan önce API'yi etkinleştirin.

Firebase Management API'de erişim yönetimi hakkında bilgi edinmek için Cloud Identity Access Management (IAM) API dokümanlarına göz atın.

Başlamadan önce

Başlamadan önce ve proje yönetiminde erişim jetonunuzu oluşturun.

Google Cloud projeniz için Management REST API'yi etkinleştirin

Henüz yapmadıysanız Firebase Management API Google Cloud projenizle kullanın.

  1. Şunu açın: Firebase Management API sayfasını ziyaret ederek kontrol edebilirsiniz.
  2. İstendiğinde Google Cloud projenizi seçin.
  3. Firebase Management API sayfasında Etkinleştir'i tıklayın.

API erişim jetonunuzu oluşturma

Erişim jetonunuzu alan Node.js örneğini aşağıda bulabilirsiniz.

Öncelikle, bir Google Cloud ortamında değilseniz konumuna giden yola GOOGLE_APPLICATION_CREDENTIALS ortam değişkeni ekleyin hizmet hesabı anahtarı.

Linux veya macOS

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

Windows

Powerpoint ile:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"

Ardından, hizmetinizden erişim jetonu almak için Firebase Admin SDK'yı kullanın hesap kimlik bilgileri:

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);
      });
}

Projenizin kaynak adını bulma

Firebase'i eklemek için kullanılabilecek Google Cloud projelerini bulabilirsiniz kullanıma sunuyoruz.

İSTE

Telefonla arama availableProjects.list. Bu çağrının istek gövdesi boş olmalıdır.

Aşağıda, kullanılabilir Google Cloud listesinin listesini istemek için kullanabileceğiniz Node.js örneği verilmiştir projeler:

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);
  }
}

SONUÇ

availableProjects.list öğesine yapılan bir çağrının yanıt gövdesinde şunlar yer alır: ProjectInfo nesneler'i tıklayın. Proje listesi çok uzunsa yanıt gövdesinde bir Sonraki sayfa için sorgu parametresi olarak kullanabileceğiniz nextPageToken bilgi edinmenizi sağlar.

Aşağıda, bir availableProjects.list çağrısına ait örnek bir yanıt gövdesi verilmiştir:

{
  "projectInfo": [
    {
      "project": "projects/first-cloud-project",
      "displayName": "First Cloud Project"
    },
    {
      "project": "projects/second-cloud-project",
      "displayName": "Second Cloud Project"
    }
  ]
}

Bu örnek yanıtta, Firebase'e sahip olabilecek iki Google Cloud projesi var hizmet eklendi. project alanının sağladığı global bir proje için benzersiz bir kaynak adıdır.

Şurada listelenen yanıtta listelenen herhangi bir project değerini kullanabilirsiniz: Firebase hizmetlerini eklemek için availableProjects.list veya projenize uygulama ekleyebilirsiniz.

Sonraki bölümde, First Cloud Project API'sini kullanarak Firebase hizmetlerini projects/first-gcp-project kaynak adı.

Firebase hizmetlerini projenize ekleyin

Google Cloud projeleri, Firebase'in sunduğu hizmetlerden yararlanabilir. İçinde Bu bölümde, Firebase hizmetlerini mevcut hesabınıza nasıl ekleyeceğinizi öğreneceksiniz. Google Cloud projesini programatik olarak çalıştırın. Ayrıca, Firebase'i de ekleyebileceğinizi unutmayın. hizmetlerini Firebase konsolunda mevcut Google Cloud projenize ekleyin.

İSTE

Telefonla arama projects.addFirebase. Bu çağrının istek gövdesi boş olmalıdır.

Firebase hizmetlerini Google Cloud'a eklemek için Node.js örneğini aşağıda bulabilirsiniz proje:

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']);
  }
}

SONUÇ

projects.addFirebase çağrısının sonucu: Operation. Sizden önce projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem yardımcı olur.

İşlemin başarılı olup olmadığını kontrol etmek için operations.get done değeri true olana ve response değeri FirebaseProject yazın. İşlem başarısız olursa error değeri şu şekilde ayarlanır: google.rpc.Status.

Bir operations.get çağrısının yanıt gövdesi aşağıda verilmiştir:

{
  "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"
    }
  }
}

done türü true ve response türü FirebaseProject olduğundan, Google Cloud projesinde artık Firebase hizmetleri var. Yanıtta ayrıca şunlar da var: yeni oluşturduğunuz FirebaseProject hakkında başka faydalı bilgiler (örneğin, projectNumber ve varsayılan resources. Operation, otomatik olarak tamamlandıktan sonra silinir.

Firebase Apps'i projenize ekleyin

iOS, Android ve web de dahil olmak üzere birçok farklı uygulama FirebaseProject kullanabilir Bu bölümde, Firebase uygulamalarını mevcut programatik olarak FirebaseProject. Ayrıca, Firebase uygulamalarını Firebase konsolunda mevcut Firebase projenizi.

Firebase projenize eklenecek Firebase Uygulaması türünü seçin.

Mevcut Firebase projenize bir Firebase Android uygulaması ekleyebilirsiniz.

İSTE

Telefonla arama projects.androidApps.create. İsteğinizin gövdesini şu şekilde oluşturabilirsiniz:

  • Gerekli:

    • packageName: Android uygulamasının standart paket adı (şimdiki haliyle) Google Play Geliştirici Konsolu'nda görünür.
  • İsteğe bağlıdır, ancak önerilir:

    • displayName: Uygulamanın kullanıcı tarafından atanan görünen adı. Bu değer Bu, uygulamanızı daha sonra Firebase konsolunda bulmak için kullanışlıdır.

Örneğimizin istek gövdesinde packageName ve displayName:

{
  "displayName": "My Firebase Android App"
  "packageName": "com.firebase.android"
}

Firebase'e Firebase Android uygulaması eklemek için kullanabileceğiniz Node.js örneği proje:

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']);
  }
}

SONUÇ

projects.androidApps.create çağrısının sonucu: Operation. Sizden önce projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem yardımcı olur.

İşlemin başarılı olup olmadığını kontrol etmek için operations.get done değeri true olana ve response değeri AndroidApp yazın. İşlem başarısız olursa error değeri şu şekilde ayarlanır: google.rpc.Status.

Bir operations.get çağrısının yanıt gövdesi aşağıda verilmiştir:

{
  "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"
  }
}

done türü true ve response türü AndroidApp olduğundan, FirebaseProject için artık AndroidApp var. Yanıtta başka bilgiler de Firebase Android uygulamanızla ilgili yararlı bilgiler (ör. benzersiz Firebase appId sürümü. Operation şu sürenin sonunda otomatik olarak silinir: teşekkür etmenin de önemli bir yoludur.

SHA sertifikaları ekleme

SHA sertifikalarını mevcut herhangi bir Firebase Android uygulamasına projects.androidApps.sha.create. Bu yöntem çağrısının istek gövdesinde boş bir name alanı olmalıdır. Bu çağrının sonucu, şunun yeni oluşturulmuş bir örneğidir: ShaCertificate.

projects.androidApps.sha.create çağrılırken geçerli bir SHA-1 veya SHA-256 sertifika karması. İmzanızın SHA karmasını alabilirsiniz gradle signingReport komutuyla sağladığınız sertifika:

./gradlew signingReport

Daha fazla bilgi için Android.

Mevcut bir Google Analytics hesabınızı mevcut programatik olarak FirebaseProject. Mevcut hesabınızı kullanarak Firebase projesini Entegrasyonlar Proje Ayarları sekmesindeki sekmenizi seçin.

projects.addGoogleAnalytics çağrısı için analytics_resource gerekir, Bu, bir analyticsAccountId veya analyticsPropertyId olabilir:

  • Yeni bir Google Analytics temel hazırlığını yapmak için mevcut bir analyticsAccountId belirtin ve yeni mülkü Firebase projesi.

  • Google Analytics ile ilişkilendirmek için mevcut bir analyticsPropertyId belirtin Firebase projenizle bağdaştırın.

Hem analyticsAccountId hem de mevcut tüm öğeleri bulabilirsiniz Google Analytics'te analyticsPropertyId bakın.

projects.addGoogleAnalytics numaralı telefonu aradığınızda:

  1. İlk kontrol, Google Cloud Logging'de mevcut veri akışlarının Analytics mülkü, FirebaseProject (şununla ilişkilendirilmiş packageName veya bundleId öğesine göre: dahil edilir. Ardından, uygun şekilde, veri akışları ve uygulamalar bağlanır. Bu otomatik bağlamanın yalnızca Android ve iOS uygulamaları için geçerli olduğunu unutmayın.

  2. Firebase Uygulamalarınız için karşılık gelen veri akışı bulunamazsa yeni veriler Google Analytics mülkünde akışların her biri için Firebase Uygulamaları. Web için her zaman yeni bir veri akışının hazırlandığını unutmayın. veya hesabınızda daha önce bir veri akışıyla ilişkilendirilmiş Analytics mülkü.

Google Analytics hesaplarının hiyerarşisi ve yapısı hakkında daha fazla bilgi edinmek için Analytics belgelerini.

İSTE

Telefonla arama projects.addGoogleAnalytics.

project.addGoogleAnalytics çağrısına verdiğimiz örnek çağrının istek gövdesinde, Google Analytics hesabımızı analyticsAccountId belirtmek isteriz. Bu görüşmede yeni bir Google Analytics mülkü sağlar ve yeni mülkü FirebaseProject.

{
  "analyticsAccountId": "<your-google-analytics-account-id>"
}

Bir Firebase projesini Google Analytics'e bağlamak için kullanılan Node.js örneğini aşağıda bulabilirsiniz hesap:

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']);
  }
}

SONUÇ

projects.addGoogleAnalytics çağrısının sonucu: Operation. Sizden önce projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem yardımcı olur.

İşlemin başarılı olup olmadığını kontrol etmek için operations.get done değeri true olana ve response türünde olana kadar işlem analyticsDetails. İşlem başarısız olursa error değeri şu şekilde ayarlanır: google.rpc.Status.

Bir operations.get çağrısının yanıt gövdesi aşağıda verilmiştir:

{
  "name": "operations/...",
  "none": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
    "analyticsProperty": [
      {
        "id": "...",
        "displayName": "..."
      }
    ],
    "streamMappings": [
      {
        "app": "...",
        "streamId": "...",
        "measurementId": "..."
      }
    ]
  }
}

done doğru, response türü analyticsDetails olduğundan FirebaseProject, belirtilen Google Analytics hesabına bağlandı. İlgili içeriği oluşturmak için kullanılan Operation, işlem tamamlandıktan sonra otomatik olarak silinir.

Projenizin varsayılan konumunu tamamlama (İsteğe bağlı)

Firebase projenizde Cloud Firestore, Cloud Storage veya App Engine uygulaması kullanıyorsanız varsayılan Google Cloud Platform (GCP) kaynak konumu belirlemenize yardımcı olabilir. Bir konumu şuradan da seçebileceğinizi unutmayın: "the" Firebase konsolu.

'nı inceleyin.

Bu konumu ayarlamadan önce İşletmeniz için konumları seçin proje başlatma belgesini kullanacaksınız akılda kalıcı bir yolunu sunar. Ayrıca projects.availableLocations ve projeniz için geçerli konumların bir listesini döndürür. Google Cloud kuruluşunun parçasıysa kuruluş politikalarınız kullanıcıların ziyaret edebileceği tüm değerleri ifade eder.

Bu defaultLocation.finalize yöntemi çağrıldığında bir App Engine oluşturulur varsayılan Cloud Storage uygulaması paket şurada bulunan: locationId belirttiğiniz URL'dir.

Varsayılan GCP kaynak konumu, Project için zaten bir App Engine uygulaması var veya bu uygulama defaultLocation.finalize yöntemi daha önce çağrıldı.

İSTE

Telefonla arama projects.defaultLocation.finalize. İsteğinizin gövdesini şu şekilde oluşturabilirsiniz:

  • Gerekli:

    • locationId: GCP hizmetleri için verilerinizin depolandığı konum Cloud Firestore veya Google Cloud gibi konum ayarı gerektiren Cloud Storage.
{
  "locationId": "us-west2"
}

Projenizin varsayılan konumunu sonlandırmak için Node.js örneğini aşağıda bulabilirsiniz:

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']);
  }
}

SONUÇ

projects.defaultLocation.finalize çağrısının sonucu: Operation. Sizden önce projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem yardımcı olur.

İşlemin başarılı olup olmadığını kontrol etmek için operations.get done değeri true olana ve response türüne gelene kadar işlem google.protobuf.Empty. İşlem başarısız olursa yanıt gövdesi, error, google.rpc.Status türünde olacak. Operation, otomatik olarak tamamlandıktan sonra silinir.