Firebase Management REST API การตั้งค่าและการจัดการโปรเจ็กต์ Firebase แบบเป็นโปรแกรม ซึ่งรวมถึง ทรัพยากร Firebase และแอป Firebase
ภาพรวมนี้อธิบายถึงเวิร์กโฟลว์ทั่วไปสำหรับเพิ่มทรัพยากร Firebase และ ไปยัง Google Cloud ที่มีอยู่ โปรเจ็กต์ ที่ไม่ได้ใช้บริการ Firebase ในขณะนี้
คุณข้ามไปยังส่วนที่เฉพาะเจาะจงในหน้านี้ได้หากคุณต้องการ
- เพิ่มบริการ Firebase ในโปรเจ็กต์
- เพิ่มแอป Firebase ลงในโปรเจ็กต์ Firebase
- ลิงก์โปรเจ็กต์ Firebase กับบัญชี Google Analytics
- สรุปตำแหน่งเริ่มต้นของโปรเจ็กต์
ก่อนที่จะดำเนินการตามขั้นตอนใดๆ ในหน้านี้ โปรดตรวจสอบว่าคุณได้ เปิดใช้ API
ดูข้อมูลเกี่ยวกับการจัดการการเข้าถึงสำหรับ Firebase Management API ได้ที่ Cloud Identity Access Management (IAM) API เอกสารประกอบ
ก่อนเริ่มต้น
ก่อนเริ่มต้น คุณจะต้องเปิดใช้ Management API สำหรับ โปรเจ็กต์ Google Cloud และ สร้างโทเค็นเพื่อการเข้าถึง
เปิดใช้ Management REST API สำหรับโปรเจ็กต์ Google Cloud
คุณจะต้องเปิดใช้ API การจัดการของ Firebase เพื่อใช้กับโปรเจ็กต์ Google Cloud ของคุณ
- เปิด API การจัดการของ Firebase ในคอนโซล Google APIs
- เมื่อมีข้อความแจ้ง ให้เลือกโปรเจ็กต์ Google Cloud
- คลิกเปิดใช้ในหน้า 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 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
ลิงก์โปรเจ็กต์ Firebase กับบัญชี Google Analytics (ไม่บังคับ)
คุณสามารถลิงก์บัญชี
บัญชี 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
:
การตรวจสอบครั้งแรกจะกำหนดว่าสตรีมข้อมูลที่มีอยู่ใน Google พร็อพเพอร์ตี้ Analytics สอดคล้องกับแอป Firebase ที่มีอยู่ใน
FirebaseProject
(อิงตามpackageName
หรือbundleId
ที่เชื่อมโยงกับ สตรีมข้อมูล) จากนั้นสตรีมข้อมูลและแอปจะลิงก์กันตามแต่กรณี โปรดทราบว่าการลิงก์อัตโนมัตินี้จะมีผลกับแอป Android และ iOS เท่านั้นหากไม่พบสตรีมข้อมูลที่เกี่ยวข้องสำหรับแอป 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
โดยอัตโนมัติหลังจากดำเนินการเสร็จสิ้น
ทำให้ตำแหน่งเริ่มต้นของโปรเจ็กต์เสร็จสมบูรณ์ (ไม่บังคับ)
หากโปรเจ็กต์ Firebase จะใช้ Cloud Firestore, Cloud Storage หรือ แอป App Engine คุณสามารถทำให้ Google Cloud เริ่มต้นได้ ตำแหน่งทรัพยากรแพลตฟอร์ม (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
โดยอัตโนมัติ
ลบทิ้งหลังจบหลักสูตร