Google 致力于为黑人社区推动种族平等。查看具体举措
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

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

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

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

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

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

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

ก่อนที่คุณจะเริ่ม

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

เปิดใช้ Management REST API สำหรับโครงการ Google Cloud ของคุณ

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

  1. เปิดหน้า Firebase Management API ในคอนโซล Google APIs
  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 เพื่อรับโทเค็นการเข้าถึงจากข้อมูลรับรองบัญชีบริการของคุณ:

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

ค้นหาชื่อทรัพยากรของโครงการของคุณ

คุณสามารถค้นหาโครงการ 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 สองโปรเจ็กต์ที่สามารถเพิ่มบริการ 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

คุณเพิ่ม แอป Firebase สำหรับ Android ลงในโครงการ Firebase ที่มีอยู่ได้

ร้องขอ

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

  • จำเป็น:

    • packageName : ชื่อแพ็กเกจมาตรฐานของแอป Android ตามที่จะปรากฏในคอนโซลนักพัฒนาซอฟต์แวร์ Google Play
  • ไม่บังคับ แต่แนะนำ:

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

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

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

นี่คือตัวอย่างสำหรับ Node.js ในการเพิ่มแอป Firebase สำหรับ Android ในโครงการ 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 ที่คุณสร้างขึ้นใหม่เช่น Firebase appId การ Operation จะถูกลบโดยอัตโนมัติหลังจากเสร็จสิ้น

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

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

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

./gradlew signingReport

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

คุณสามารถเชื่อมโยง บัญชี 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

ในเนื้อหาคำขอสำหรับตัวอย่างของเรา call to project.addGoogleAnalytics เราจะระบุ analyticsAccountId บัญชี Google Analytics ของเรา สายนี้จะจัดเตรียมพร็อพเพอร์ตี้ 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 จะถูกลบโดยอัตโนมัติหลังจากเสร็จสิ้น

สรุปตำแหน่งเริ่มต้นของโครงการของคุณให้เสร็จสมบูรณ์ (ไม่บังคับ)

หากโปรเจ็กต์ Firebase ของคุณจะใช้ Cloud Firestore, Cloud Storage หรือแอป App Engine คุณสามารถสรุป ตำแหน่งทรัพยากร Google Cloud Platform (GCP) เริ่มต้น สำหรับโปรเจ็กต์ของคุณโดยใช้โปรแกรม โปรดทราบว่าคุณสามารถเลือกตำแหน่งใน คอนโซล Firebase ได้ด้วย

ก่อนตั้งค่าตำแหน่งนี้ให้ตรวจสอบ เลือกสถานที่สำหรับโครงการของคุณ เพื่อดูข้อมูลว่าสถานที่ใดดีที่สุดสำหรับโครงการของคุณ นอกจากนี้คุณควรโทรหา projects.availableLocations เพื่อส่งคืนรายการตำแหน่งที่ถูกต้องสำหรับโครงการของคุณเนื่องจากหากโครงการของคุณเป็นส่วนหนึ่งขององค์กร Google Cloud นโยบายองค์กร ของคุณ อาจ จำกัด สถานที่ที่ ใช้ได้สำหรับโครงการของคุณ

การเรียกใช้เมธอด defaultLocation.finalize นี้จะสร้างแอปพลิเคชัน App Engine ที่มีที่ เก็บข้อมูล Cloud Storage เริ่มต้น ซึ่งอยู่ใน locationId ที่คุณระบุในเนื้อหาคำขอ

ตำแหน่งทรัพยากร GCP เริ่มต้นอาจถูกระบุไว้แล้วหาก Project มีแอปพลิเคชัน App Engine อยู่แล้วหรือก่อนหน้านี้เรียกเมธอด defaultLocation.finalize

ร้องขอ

เรียก projects.defaultLocation.finalize วิธีสร้างเนื้อหาคำขอของคุณมีดังนี้

  • จำเป็น:

    • locationId : ตำแหน่งที่เก็บข้อมูลของคุณสำหรับบริการ GCP ที่ต้องการการตั้งค่าตำแหน่งเช่น Cloud Firestore หรือ Cloud Storage
{
  "locationId": "us-west2"
}

นี่คือตัวอย่างสำหรับ Node.js เพื่อสรุปตำแหน่งเริ่มต้นของโครงการของคุณ:

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

ผลลัพธ์

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

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