ตั้งค่าและจัดการโปรเจ็กต์ Firebase โดยใช้ Management REST API

Firebase Management REST API ช่วยให้สามารถตั้งค่าและจัดการโปรเจ็กต์ Firebase แบบเป็นโปรแกรมได้ ซึ่งรวมถึงทรัพยากร Firebase และแอป Firebase ของโปรเจ็กต์

ภาพรวมนี้อธิบายเวิร์กโฟลว์ทั่วไปในการเพิ่มทรัพยากรและแอป Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่ซึ่งยังไม่ได้ใช้บริการ Firebase

คุณข้ามไปยังส่วนที่เฉพาะเจาะจงของหน้านี้ได้หากต้องการทำสิ่งต่อไปนี้

ก่อนทำตามขั้นตอนในหน้านี้ โปรดตรวจสอบว่าคุณเปิดใช้ API แล้ว

ดูข้อมูลเกี่ยวกับการจัดการการเข้าถึงสำหรับ Firebase Management API ได้ที่เอกสารประกอบเกี่ยวกับ Cloud Identity Access Management (IAM) API

ก่อนเริ่มต้น

ก่อนเริ่มต้น คุณจะต้องเปิดใช้ Management API สำหรับโปรเจ็กต์ Google Cloud และสร้างโทเค็นเพื่อการเข้าถึง

เปิดใช้ Management REST API สำหรับโปรเจ็กต์ Google Cloud

หากยังไม่ได้เปิดใช้ คุณจะต้องเปิดใช้ Firebase Management API เพื่อใช้กับโปรเจ็กต์ Google Cloud

  1. เปิดหน้า Firebase Management API ในคอนโซล Google API
  2. เมื่อได้รับข้อความแจ้ง ให้เลือกโปรเจ็กต์ Google Cloud
  3. คลิกเปิดใช้ในหน้า Firebase Management API

สร้างโทเค็นเพื่อการเข้าถึง API

ต่อไปนี้เป็นตัวอย่างสำหรับ Node.js ที่ดึงข้อมูลโทเค็นเพื่อการเข้าถึง

ก่อนอื่น หากคุณไม่ได้อยู่ในสภาพแวดล้อม Google Cloud ให้ตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เป็นเส้นทางไปยังคีย์บัญชีบริการ

Linux หรือ macOS

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

Windows

ด้วย PowerShell:

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

จากนั้นใช้ Firebase Admin SDK เพื่อรับโทเค็นเพื่อการเข้าถึงจากข้อมูลเข้าสู่ระบบของบัญชีบริการ โดยทำดังนี้

import { initializeApp, applicationDefault } from "firebase-admin/app";

initializeApp();

async function getAccessToken() {
  try {
    const accessToken = await applicationDefault().getAccessToken();
    return accessToken.access_token;
  } catch (err) {
    console.error('Unable to get access token');
    console.error(err);
  }
}

ค้นหาชื่อทรัพยากรของโปรเจ็กต์

คุณสามารถดูโปรเจ็กต์ Google Cloud รายการที่พร้อมให้เพิ่มบริการ Firebase ได้

คำขอ

โทรหา availableProjects.list เนื้อหาคำขอสำหรับการเรียกนี้ต้องว่างเปล่า

ตัวอย่างสำหรับ Node.js ในการขอรายการโปรเจ็กต์ Google Cloud ที่พร้อมใช้งานมีดังนี้

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

ผลลัพธ์

เนื้อหาการตอบกลับจากการเรียกไปยัง availableProjects.list จะมีรายการออบเจ็กต์ ProjectInfo หากรายการโปรเจ็กต์ยาวเกินไป เนื้อหาการตอบกลับจะมี nextPageToken ที่คุณใช้เป็นพารามิเตอร์การค้นหาเพื่อดูหน้าถัดไปของโปรเจ็กต์ได้ด้วย

ตัวอย่างเนื้อหาการตอบกลับของการเรียก availableProjects.list มีดังนี้

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

การตอบกลับตัวอย่างนี้มีโปรเจ็กต์ Google Cloud 2 โปรเจ็กต์ที่สามารถเพิ่มบริการ Firebase ได้ โปรดทราบว่าช่อง project จะระบุชื่อทรัพยากรที่ไม่ซ้ำกันทั่วโลกสำหรับโปรเจ็กต์

คุณสามารถใช้ค่า project ใดก็ได้ที่แสดงในการตอบกลับจาก availableProjects.list เพื่อเพิ่มบริการ Firebase หรือเพิ่มแอปลงในโปรเจ็กต์

ในส่วนถัดไป เราจะเพิ่มบริการ Firebase ลงใน First Cloud Project โดยใช้ชื่อทรัพยากร projects/first-gcp-project

เพิ่มบริการ Firebase ลงในโปรเจ็กต์

โปรเจ็กต์ Google Cloud สามารถใช้ประโยชน์จากบริการที่ Firebase นำเสนอ ในส่วนนี้ คุณจะได้เรียนรู้วิธีเพิ่มบริการ Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่แบบเป็นโปรแกรม โปรดทราบว่าคุณยังสามารถเพิ่มบริการ Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่ในคอนโซล Firebase ได้ด้วย

คำขอ

โทรหา projects.addFirebase เนื้อหาคำขอสำหรับการเรียกนี้ต้องว่างเปล่า

ต่อไปนี้เป็นตัวอย่าง Node.js สำหรับเพิ่มบริการ Firebase ลงในโปรเจ็กต์ Google Cloud

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

ผลลัพธ์

ผลลัพธ์ของการเรียกใช้ projects.addFirebase คือ Operation การดำเนินการต้องเสร็จสมบูรณ์ก่อนที่คุณจะเรียกใช้ปลายทางอื่นๆ ที่เกี่ยวข้องกับ Firebase สำหรับโปรเจ็กต์ได้

หากต้องการตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ คุณสามารถเรียกใช้ operations.get ในการดำเนินการจนกว่าค่าของ done จะเป็น true และ response เป็นประเภท FirebaseProject หากการดำเนินการไม่สำเร็จ ระบบจะตั้งค่า error เป็น google.rpc.Status

เนื้อหาการตอบกลับของการเรียก 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"
    }
  }
}

เนื่องจาก done คือ true และประเภท response คือ FirebaseProject ตอนนี้โปรเจ็กต์ Google Cloud จึงมีบริการ Firebase นอกจากนี้ การตอบกลับยังมีข้อมูลที่เป็นประโยชน์อื่นๆ เกี่ยวกับ FirebaseProject ที่สร้างขึ้นใหม่ เช่น projectNumber และ resources เริ่มต้น ระบบจะลบ Operation โดยอัตโนมัติหลังจากเสร็จสิ้น

เพิ่มแอป Firebase ลงในโปรเจ็กต์

แอปต่างๆ มากมายสามารถใช้ FirebaseProject ได้ ซึ่งรวมถึงแอป iOS, Android และเว็บแอป ในส่วนนี้ คุณจะได้เรียนรู้วิธีเพิ่มแอป Firebase ลงใน FirebaseProject ที่มีอยู่โดยใช้โปรแกรม โปรดทราบว่าคุณยังเพิ่มแอป Firebase ลงในโปรเจ็กต์ Firebase ที่มีอยู่ในคอนโซล Firebase ได้ด้วย

เลือกประเภทแอป Firebase ที่จะเพิ่มลงในโปรเจ็กต์ Firebase

iOS+

แอป iOS ของ Firebase สามารถเพิ่มลงในโปรเจ็กต์ Firebase ที่มีอยู่ได้

คำขอ

โทรหา projects.iosApps.create วิธีสร้างเนื้อหาคำขอมีดังนี้

  • ต้องระบุ:

    • bundleId: รหัสชุด Canonical ของแอป iOS ตามที่ปรากฏใน iOS App Store
  • ไม่บังคับแต่แนะนำ

    • displayName: ชื่อที่แสดงของแอปที่ผู้ใช้กำหนด ค่านี้มีประโยชน์สำหรับการค้นหาแอปในภายหลังในคอนโซล Firebase

    • appStoreId: Apple ID ที่สร้างขึ้นโดยอัตโนมัติซึ่ง Apple กำหนดให้กับแอปของคุณ ระบุ appStoreId หาก Apple ได้กำหนดไว้แล้ว

ในเนื้อหาคำขอสำหรับตัวอย่างของเรา เราจะใช้เฉพาะ displayName และ bundleId ดังนี้

{
  "displayName": "My Firebase iOS App",
  "bundleId": "com.firebase.ios"
}

ตัวอย่าง Node.js สำหรับเพิ่มแอป Firebase บน iOS ลงในโปรเจ็กต์ 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']);
  }
}

ผลลัพธ์

ผลลัพธ์ของการเรียกใช้ projects.iosApps.create คือ Operation การดำเนินการต้องเสร็จสมบูรณ์ก่อนที่คุณจะเรียกใช้ปลายทางอื่นๆ ที่เกี่ยวข้องกับ Firebase สำหรับโปรเจ็กต์ได้

หากต้องการตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ คุณสามารถเรียกใช้ operations.get ในการดำเนินการจนกว่าค่าของ done จะเป็น true และ response เป็นประเภท IosApp หากการดำเนินการไม่สำเร็จ ระบบจะตั้งค่า error เป็น google.rpc.Status

เนื้อหาการตอบกลับของการเรียก 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"
  }
}

เนื่องจาก done เป็น true และประเภท response เป็น IosApp ตอนนี้ FirebaseProject จึงมี IosApp การตอบกลับยังมีข้อมูลที่เป็นประโยชน์อื่นๆ เกี่ยวกับแอป Firebase iOS ที่สร้างขึ้นใหม่ เช่น appId ของ Firebase ที่ไม่ซ้ำกัน ระบบจะลบ Operation โดยอัตโนมัติหลังจากเสร็จสิ้น

Android

แอป Android ของ Firebase สามารถเพิ่มลงในโปรเจ็กต์ Firebase ที่มีอยู่ได้

คำขอ

โทรหา projects.androidApps.create วิธีสร้างเนื้อหาคำขอมีดังนี้

  • ต้องระบุ:

    • packageName: ชื่อแพ็กเกจ Canonical ของแอป Android ตามที่ปรากฏใน Google Play Developer Console
  • ไม่บังคับแต่แนะนำ

    • displayName: ชื่อที่แสดงของแอปที่ผู้ใช้กำหนด ค่านี้มีประโยชน์สำหรับการค้นหาแอปของคุณในภายหลังในคอนโซล Firebase

ในเนื้อหาของคำขอสำหรับตัวอย่างนี้ เราจะใช้ packageName และ displayName ดังนี้

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

ตัวอย่าง Node.js ในการเพิ่มแอป Android ของ Firebase ลงในโปรเจ็กต์ 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']);
  }
}

ผลลัพธ์

ผลลัพธ์ของการเรียกใช้ projects.androidApps.create คือ Operation การดำเนินการต้องเสร็จสมบูรณ์ก่อนที่คุณจะเรียกใช้ปลายทางอื่นๆ ที่เกี่ยวข้องกับ Firebase สำหรับโปรเจ็กต์ได้

หากต้องการตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ คุณสามารถเรียกใช้ operations.get ในการดำเนินการจนกว่าค่าของ done จะเป็น true และ response เป็นประเภท AndroidApp หากการดำเนินการไม่สำเร็จ ระบบจะตั้งค่า error เป็น google.rpc.Status

เนื้อหาการตอบกลับของการเรียก 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"
  }
}

เนื่องจาก done เป็น true และประเภท response เป็น AndroidApp ตอนนี้ FirebaseProject จึงมี AndroidApp การตอบกลับยังมีข้อมูลที่เป็นประโยชน์อื่นๆ เกี่ยวกับแอป Firebase Android ที่สร้างขึ้นใหม่ เช่น appId ของ Firebase ที่ไม่ซ้ำกัน ระบบจะลบ Operation โดยอัตโนมัติหลังจากเสร็จสมบูรณ์

เพิ่มใบรับรอง SHA

คุณสามารถเพิ่มใบรับรอง SHA ลงในแอป Android ของ Firebase ที่มีอยู่ได้โดยเรียกใช้ projects.androidApps.sha.create เนื้อหาคำขอสำหรับการเรียกใช้เมธอดนี้ต้องมีช่อง name ที่ว่างเปล่า ผลลัพธ์ของการเรียกนี้คืออินสแตนซ์ที่สร้างขึ้นใหม่ของ ShaCertificate

เมื่อเรียกใช้ projects.androidApps.sha.create คุณต้องระบุแฮชใบรับรอง SHA-1 หรือ SHA-256 ที่ถูกต้อง คุณสามารถรับแฮช SHA ของใบรับรองการลงนามด้วยคำสั่ง gradle signingReport ดังนี้

./gradlew signingReport

ดูข้อมูลเพิ่มเติมได้ที่ Google APIs สำหรับ Android

เว็บ

คุณเพิ่มเว็บแอป Firebase ลงในโปรเจ็กต์ Firebase ที่มีอยู่ได้

คำขอ

โทรหา projects.webApps.create วิธีสร้างเนื้อหาคำขอมีดังนี้

  • ไม่บังคับ:

    • displayName: ชื่อที่แสดงของแอปที่ผู้ใช้กำหนด ค่านี้มีประโยชน์สำหรับการค้นหาแอปของคุณในภายหลังในคอนโซล Firebase
  • ไม่แนะนำ:

    • appUrls: URL แบบสมบูรณ์ที่โฮสต์แอป เมื่อเว็บแอป Firebase เชื่อมโยงกับเว็บไซต์ Firebase Hosting แล้ว Firebase จะป้อนข้อมูลในช่องเหล่านี้โดยอัตโนมัติ ดังนั้นโปรดเว้นช่องเหล่านี้ว่างไว้ในเนื้อหาคำขอ

เราจะระบุเฉพาะ displayName ในเนื้อความของคำขอสำหรับตัวอย่างของเรา ดังนี้

{
  "displayName": "My Firebase Web App"
}

ตัวอย่างสำหรับ Node.js ในการเพิ่มเว็บแอป Firebase ลงในโปรเจ็กต์ Firebase มีดังนี้

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

ผลลัพธ์

ผลลัพธ์ของการเรียกใช้ projects.webApps.create คือ Operation การดำเนินการต้องเสร็จสมบูรณ์ก่อนที่คุณจะเรียกใช้ปลายทางอื่นๆ ที่เกี่ยวข้องกับ Firebase สำหรับโปรเจ็กต์ได้

หากต้องการตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ คุณสามารถเรียกใช้ operations.get ในการดำเนินการจนกว่าค่าของ done จะเป็น true และ response เป็นประเภท WebApp หากการดำเนินการไม่สำเร็จ ระบบจะตั้งค่า error เป็น google.rpc.Status

เนื้อหาการตอบกลับของการเรียก 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"
  }
}

เนื่องจาก done เป็น true และประเภท response เป็น WebApp ตอนนี้ FirebaseProject จึงมี WebApp การตอบกลับยังมีข้อมูลที่เป็นประโยชน์อื่นๆ เกี่ยวกับเว็บแอป Firebase ที่สร้างขึ้นใหม่ เช่น appId ของ Firebase ที่ไม่ซ้ำกัน ระบบจะลบ Operation โดยอัตโนมัติหลังจากเสร็จสิ้น

คุณสามารถลิงก์บัญชี Google Analytics ที่มีอยู่กับ FirebaseProject ที่มีอยู่แบบเป็นโปรแกรมได้ โปรดทราบว่าคุณยังลิงก์โปรเจ็กต์ Firebase ที่มีอยู่กับ Google Analytics ได้ในแท็บการผสานรวมของการตั้งค่าโปรเจ็กต์

การเรียกใช้ projects.addGoogleAnalytics ต้องใช้ analytics_resource ซึ่งอาจเป็น analyticsAccountId หรือ analyticsPropertyId ก็ได้

  • ระบุ analyticsAccountId ที่มีอยู่เพื่อจัดสรรพร็อพเพอร์ตี้ Google Analytics ใหม่ภายในบัญชีที่ระบุ และเชื่อมโยงพร็อพเพอร์ตี้ใหม่กับโปรเจ็กต์ Firebase

  • ระบุ analyticsPropertyId ที่มีอยู่เพื่อเชื่อมโยงพร็อพเพอร์ตี้ Google Analytics กับโปรเจ็กต์ Firebase

คุณสามารถดูทั้ง analyticsAccountId และ analyticsPropertyId ที่มีอยู่ได้ในเว็บไซต์ Google Analytics

เมื่อคุณโทรหา projects.addGoogleAnalytics:

  1. การตรวจสอบครั้งแรกจะพิจารณาว่าสตรีมข้อมูลที่มีอยู่ในพร็อพเพอร์ตี้ Google Analytics สอดคล้องกับแอป Firebase ที่มีอยู่ใน FirebaseProject หรือไม่ (อิงตาม packageName หรือ bundleId ที่เชื่อมโยงกับสตรีมข้อมูล) จากนั้นระบบจะลิงก์สตรีมข้อมูลและแอปตามความเหมาะสม โปรดทราบว่าการลิงก์อัตโนมัตินี้ใช้ได้กับแอป Android และแอป iOS เท่านั้น

  2. หากไม่พบสตรีมข้อมูลที่สอดคล้องกันสําหรับแอป Firebase ระบบจะจัดสรรสตรีมข้อมูลใหม่ในพร็อพเพอร์ตี้ Google Analytics สําหรับแอป Firebase แต่ละแอป โปรดทราบว่าระบบจะจัดสรรสตรีมข้อมูลใหม่สําหรับเว็บแอปเสมอ แม้ว่าก่อนหน้านี้จะเชื่อมโยงกับสตรีมข้อมูลในพร็อพเพอร์ตี้ Analytics ก็ตาม

ดูข้อมูลเพิ่มเติมเกี่ยวกับลําดับชั้นและโครงสร้างของบัญชี Google Analytics ในเอกสารประกอบของ Analytics

คำขอ

โทรหา projects.addGoogleAnalytics

ในเนื้อหาคำขอสำหรับการเรียกตัวอย่างไปยัง project.addGoogleAnalytics เราจะระบุบัญชี Google Analytics analyticsAccountId การเรียกนี้จะจัดสรรพร็อพเพอร์ตี้ Google Analytics ใหม่และเชื่อมโยงพร็อพเพอร์ตี้ใหม่กับ FirebaseProject

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

ตัวอย่าง Node.js สำหรับลิงก์โปรเจ็กต์ Firebase กับบัญชี 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']);
  }
}

ผลลัพธ์

ผลลัพธ์ของการเรียกใช้ projects.addGoogleAnalytics คือ Operation การดำเนินการต้องเสร็จสมบูรณ์ก่อนที่คุณจะเรียกใช้ปลายทางอื่นๆ ที่เกี่ยวข้องกับ Firebase สำหรับโปรเจ็กต์ได้

หากต้องการตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ คุณสามารถเรียกใช้ operations.get ในการดำเนินการจนกว่าค่าของ done จะเป็น true และ response เป็นประเภท analyticsDetails หากการดำเนินการไม่สำเร็จ ระบบจะตั้งค่า error เป็น google.rpc.Status

เนื้อหาการตอบกลับของการเรียก operations.get มีดังนี้

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

เนื่องจาก done เป็นจริงและประเภท response คือ analyticsDetails ตอนนี้ FirebaseProject จึงลิงก์กับบัญชี Google Analytics ที่ระบุแล้ว ระบบจะลบ Operation โดยอัตโนมัติหลังจากเสร็จสิ้น