Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Siapkan dan kelola proyek Firebase menggunakan Management REST API

The Firebase Manajemen SISA API memungkinkan setup program dan manajemen proyek Firebase, termasuk sumber daya sebuah proyek Firebase dan Firebase Apps.

Ikhtisar ini menjelaskan alur kerja umum untuk menambah sumber daya Firebase dan aplikasi untuk yang ada proyek Google Cloud yang saat ini tidak menggunakan layanan Firebase.

Anda dapat melompat ke bagian tertentu dari halaman ini jika Anda hanya ingin:

Sebelum mengikuti langkah-langkah pada halaman ini, pastikan bahwa Anda mengaktifkan API .

Untuk informasi tentang manajemen akses untuk API Firebase Manajemen, kunjungi Cloud Identity Access Management (IAM) dokumentasi API .

Sebelum kamu memulai

Sebelum Anda mulai, Anda harus mengaktifkan API Pengelolaan untuk proyek Google Cloud Anda dan menghasilkan akses token .

Aktifkan Management REST API untuk proyek Google Cloud Anda

Jika Anda belum melakukannya, Anda harus mengaktifkan API Firebase Manajemen untuk digunakan dengan proyek Google Cloud Anda.

  1. Buka Firebase Manajemen API di Konsol Google API.
  2. Saat diminta, pilih proyek Google Cloud Anda.
  3. Klik Aktifkan di halaman Firebase Manajemen API.

Hasilkan token akses API Anda

Berikut adalah contoh untuk Node.js yang mengambil token akses Anda.

Pertama, jika Anda tidak dalam lingkungan Google Cloud, mengatur GOOGLE_APPLICATION_CREDENTIALS variabel lingkungan ke jalan untuk kunci akun layanan Anda.

Linux atau macOS

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

jendela

Dengan PowerShell:

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

Kemudian, gunakan Firebase Admin SDK untuk mendapatkan token akses dari kredensial akun layanan Anda:

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

Temukan nama sumber daya proyek Anda

Anda dapat menemukan proyek Google Cloud yang tersedia untuk menambahkan layanan Firebase.

MEMINTA

Panggilan availableProjects.list . Badan permintaan untuk panggilan ini harus kosong.

Berikut ini contoh Node.js untuk meminta daftar proyek Google Cloud yang tersedia:

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

HASIL

Respon tubuh dari panggilan ke availableProjects.list berisi daftar ProjectInfo objek. Jika daftar proyek terlalu panjang, respon tubuh juga berisi nextPageToken yang dapat Anda gunakan sebagai parameter permintaan untuk mendapatkan halaman berikutnya dari proyek.

Berikut ini adalah tubuh contoh respon dari availableProjects.list panggilan:

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

Contoh respons ini memiliki dua proyek Google Cloud yang dapat menambahkan layanan Firebase ke dalamnya. Perhatikan bahwa project lapangan memberikan nama sumber daya global yang unik untuk sebuah proyek.

Anda dapat menggunakan project nilai yang tercantum dalam respon dari availableProjects.list ke menambahkan layanan Firebase atau menambahkan aplikasi untuk proyek Anda.

Pada bagian berikutnya, kita akan menambahkan layanan Firebase untuk First Cloud Project menggunakan projects/first-gcp-project nama sumber daya.

Tambahkan layanan Firebase ke proyek Anda

Proyek Google Cloud dapat memanfaatkan layanan yang ditawarkan oleh Firebase. Di bagian ini, Anda akan mempelajari cara menambahkan layanan Firebase ke proyek Google Cloud yang ada secara terprogram. Perhatikan bahwa Anda juga dapat menambahkan layanan Firebase yang ada proyek Google Cloud Anda di konsol Firebase .

MEMINTA

Panggilan projects.addFirebase . Badan permintaan untuk panggilan ini harus kosong.

Berikut ini contoh Node.js untuk menambahkan layanan Firebase ke proyek Google Cloud Anda:

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

HASIL

Hasil dari panggilan untuk projects.addFirebase adalah Operation . Sebelum Anda dapat memanggil endpoint terkait Firebase lainnya untuk proyek Anda, operasi harus berhasil.

Untuk memeriksa apakah operasi berhasil, Anda dapat menghubungi operations.get pada operasi sampai nilai done adalah true dan yang response adalah tipe FirebaseProject . Jika operasi gagal, yang error diatur untuk google.rpc.Status .

Berikut respon tubuh dari operations.get panggilan:

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

Sejak done adalah true dan response jenis adalah FirebaseProject , proyek Google Cloud kini memiliki layanan Firebase. Respon juga berisi informasi berguna lainnya tentang yang baru dibuat FirebaseProject , seperti yang projectNumber nya default dan resources . The Operation secara otomatis dihapus setelah selesai.

Tambahkan Aplikasi Firebase ke proyek Anda

Banyak aplikasi yang berbeda dapat menggunakan FirebaseProject , termasuk iOS, Android, dan aplikasi web. Pada bagian ini, Anda akan belajar bagaimana menambahkan Firebase Apps untuk Anda yang sudah ada FirebaseProject pemrograman. Perhatikan bahwa Anda juga dapat menambahkan Firebase Apps untuk proyek Firebase yang ada di konsol Firebase .

Pilih jenis Aplikasi Firebase untuk ditambahkan ke proyek Firebase Anda.

Anda dapat menambahkan Firebase Android App untuk proyek Firebase yang ada.

MEMINTA

Panggilan projects.androidApps.create . Berikut cara membuat badan permintaan Anda:

  • Yg dibutuhkan:

    • packageName : The kanonik nama paket dari aplikasi Android karena akan muncul di Google konsol Pengembang Play.
  • Opsional, tetapi disarankan:

    • displayName : Nama tampilan-ditugaskan pengguna dari aplikasi. Nilai ini berguna untuk menemukan aplikasi Anda nanti di konsol Firebase .

Dalam permintaan tubuh untuk contoh kita, kita akan menggunakan packageName dan displayName :

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

Berikut ini contoh Node.js untuk menambahkan Aplikasi Android Firebase ke proyek Firebase Anda:

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

HASIL

Hasil dari panggilan untuk projects.androidApps.create adalah Operation . Sebelum Anda dapat memanggil endpoint terkait Firebase lainnya untuk proyek Anda, operasi harus berhasil.

Untuk memeriksa apakah operasi berhasil, Anda dapat menghubungi operations.get pada operasi sampai nilai done adalah true dan yang response adalah tipe AndroidApp . Jika operasi gagal, yang error diatur untuk google.rpc.Status .

Berikut respon tubuh dari operations.get panggilan:

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

Sejak done adalah true dan response jenis adalah AndroidApp , yang FirebaseProject sekarang memiliki AndroidApp . Respon juga berisi informasi berguna lainnya tentang yang baru dibuat Firebase Android App, seperti yang unik Firebase appId . The Operation secara otomatis dihapus setelah selesai.

Tambahkan sertifikat SHA

Anda dapat menambahkan sertifikat SHA untuk setiap ada Firebase Android App dengan memanggil projects.androidApps.sha.create . Permintaan tubuh untuk metode panggilan ini harus memiliki kosong name lapangan. Hasil panggilan ini adalah contoh yang baru dibuat dari ShaCertificate .

Saat memanggil projects.androidApps.sha.create , Anda perlu memberikan berlaku SHA-1 atau SHA-256 sertifikat hash. Anda bisa mendapatkan SHA hash dari sertifikat penandatanganan Anda dengan Gradle signingReport perintah:

./gradlew signingReport

Untuk informasi lebih lanjut, kunjungi Google API untuk Android .

Anda dapat menautkan ada akun Google Analytics untuk Anda yang sudah ada FirebaseProject pemrograman. Catatan bahwa Anda juga dapat menghubungkan proyek Firebase yang ada ke Google Analytics di integrasi tab Settings Proyek Anda.

Panggilan untuk projects.addGoogleAnalytics membutuhkan analytics_resource , yang baik bisa menjadi analyticsAccountId atau analyticsPropertyId :

  • Menentukan ada analyticsAccountId untuk penyediaan properti Google Analytics baru dalam akun tertentu dan mengasosiasikan properti baru dengan proyek Firebase Anda.

  • Menentukan ada analyticsPropertyId untuk mengasosiasikan properti Google Analytics dengan proyek Firebase Anda.

Anda dapat menemukan baik Anda analyticsAccountId dan setiap ada analyticsPropertyId di situs Google Analytics .

Ketika Anda menelepon projects.addGoogleAnalytics :

  1. Cek pertama menentukan apakah data yang ada stream di Google Analytics bersesuaian properti untuk setiap Firebase Apps yang ada di Anda FirebaseProject (berdasarkan packageName atau bundleId terkait dengan aliran data). Kemudian, sebagaimana berlaku, aliran data dan aplikasi ditautkan. Perhatikan bahwa penautan otomatis ini hanya berlaku untuk Aplikasi Android dan Aplikasi iOS.

  2. Jika tidak ada aliran data terkait yang ditemukan untuk Aplikasi Firebase Anda, aliran data baru akan disediakan di properti Google Analytics untuk setiap Aplikasi Firebase Anda. Perhatikan bahwa aliran data baru selalu disediakan untuk Aplikasi Web meskipun sebelumnya dikaitkan dengan aliran data di properti Analytics Anda.

Pelajari lebih lanjut tentang hirarki dan struktur Google Analytics account di dokumentasi Analytics .

MEMINTA

Panggilan projects.addGoogleAnalytics .

Dalam permintaan tubuh misalnya panggilan kita untuk project.addGoogleAnalytics , kami akan tentukan akun Google Analytics kami analyticsAccountId . Ini penyediaan panggilan kehendak properti Google Analytics baru dan mengasosiasikan properti baru dengan FirebaseProject .

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

Berikut ini contoh Node.js untuk menautkan proyek Firebase dengan akun 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']);
  }
}

HASIL

Hasil dari panggilan untuk projects.addGoogleAnalytics adalah Operation . Sebelum Anda dapat memanggil endpoint terkait Firebase lainnya untuk proyek Anda, operasi harus berhasil.

Untuk memeriksa apakah operasi berhasil, Anda dapat menghubungi operations.get pada operasi sampai nilai done adalah true dan response adalah tipe analyticsDetails . Jika operasi gagal, yang error diatur untuk google.rpc.Status .

Berikut respon tubuh dari operations.get panggilan:

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

Sejak done benar dan response jenis adalah analyticsDetails , yang FirebaseProject sekarang terhubung ke akun Google Analytics yang ditentukan. The Operation secara otomatis dihapus setelah selesai.

Selesaikan lokasi default proyek Anda (Opsional)

Jika proyek Firebase Anda akan menggunakan Cloud Firestore, Cloud Storage, atau aplikasi App Engine, Anda dapat menyelesaikan bawaan Google Cloud Platform (GCP) lokasi sumber daya untuk proyek Anda pemrograman. Catatan bahwa Anda juga dapat memilih lokasi di konsol Firebase .

Sebelum menetapkan lokasi ini, periksa Pilih lokasi untuk proyek Anda untuk informasi yang lokasi terbaik untuk proyek Anda. Anda juga harus memanggil projects.availableLocations untuk kembali daftar lokasi valid untuk proyek Anda karena jika proyek Anda adalah bagian dari sebuah organisasi Google Cloud, maka Anda kebijakan organisasi mungkin membatasi yang lokasi berlaku untuk proyek Anda.

Memanggil ini defaultLocation.finalize metode menciptakan aplikasi App Engine dengan standar ember Cloud Storage terletak di locationId yang Anda berikan dalam tubuh permintaan.

Lokasi sumber daya standar GCP mungkin telah ditentukan jika Project sudah memiliki sebuah aplikasi App Engine atau ini defaultLocation.finalize metode disebut sebelumnya.

MEMINTA

Panggilan projects.defaultLocation.finalize . Berikut cara membuat badan permintaan Anda:

  • Yg dibutuhkan:

    • locationId : Lokasi di mana data Anda disimpan untuk layanan GCP yang memerlukan pengaturan lokasi, seperti Cloud Firestore atau Cloud Storage.
{
  "locationId": "us-west2"
}

Berikut ini contoh Node.js untuk menyelesaikan lokasi default proyek Anda:

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

HASIL

Hasil dari panggilan untuk projects.defaultLocation.finalize adalah Operation . Sebelum Anda dapat memanggil endpoint terkait Firebase lainnya untuk proyek Anda, operasi harus berhasil.

Untuk memeriksa apakah operasi berhasil, Anda dapat menghubungi operations.get pada operasi sampai nilai done adalah true dan yang response adalah tipe google.protobuf.Empty . Jika operasi tidak berhasil, respon tubuh error akan jenis google.rpc.Status . The Operation secara otomatis dihapus setelah selesai.