API REST Management Firebase cho phép thiết lập có lập trình và quản lý các dự án Firebase, bao gồm Tài nguyên Firebase và Ứng dụng Firebase.
Phần tổng quan này mô tả quy trình chung để thêm tài nguyên và ứng dụng vào Google Cloud hiện tại dự án hiện không sử dụng các dịch vụ Firebase.
Bạn có thể chuyển đến các phần cụ thể trên trang này nếu chỉ muốn:
- Thêm dịch vụ Firebase vào dự án
- Thêm ứng dụng Firebase vào dự án Firebase
- Liên kết dự án Firebase với tài khoản Google Analytics
- Hoàn tất vị trí mặc định của dự án
Trước khi làm theo bất kỳ bước nào trên trang này, hãy đảm bảo rằng bạn bật API.
Để biết thông tin về việc quản lý quyền truy cập vào Firebase Management API, hãy truy cập vào API Quản lý quyền truy cập danh tính (IAM) của Cloud .
Trước khi bắt đầu
Trước khi bắt đầu, bạn cần bật API Quản lý cho dự án Google Cloud của bạn và tạo mã truy cập.
Bật API REST quản lý cho dự án Google Cloud của bạn
Nếu chưa bật, bạn cần bật API Quản lý Firebase để dùng với dự án Google Cloud của bạn.
- Mở API Quản lý Firebase trong bảng điều khiển API của Google.
- Khi được nhắc, hãy chọn dự án Google Cloud của bạn.
- Nhấp vào Bật trên trang API Quản lý Firebase.
Tạo mã truy cập API
Dưới đây là ví dụ về Node.js giúp truy xuất mã truy cập của bạn.
Trước tiên, nếu bạn không ở trong môi trường Google Cloud, hãy đặt giá trị
biến môi trường GOOGLE_APPLICATION_CREDENTIALS
đến đường dẫn đến
mã tài khoản dịch vụ.
Linux hoặc macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
Với PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Sau đó, hãy sử dụng SDK quản trị của Firebase để nhận mã truy cập từ dịch vụ của bạn thông tin đăng nhập tài khoản:
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);
});
}
Tìm tên tài nguyên của dự án
Bạn có thể tìm thấy Google Cloud dự án có thể thêm Firebase luôn miễn phí.
YÊU CẦU
Gọi điện
availableProjects.list
.
Bạn phải để trống phần nội dung yêu cầu cho lệnh gọi này.
Sau đây là ví dụ về cách Node.js yêu cầu danh sách Google Cloud có sẵn dự án:
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);
}
}
KẾT QUẢ
Nội dung phản hồi của lệnh gọi đến availableProjects.list
chứa danh sách
ProjectInfo
. Nếu danh sách dự án quá dài, thì nội dung phản hồi cũng chứa một
nextPageToken
mà bạn có thể sử dụng làm tham số truy vấn để tải trang tiếp theo
dự án.
Dưới đây là nội dung phản hồi mẫu của một lệnh gọi availableProjects.list
:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Phản hồi mẫu này có hai dự án Google Cloud có thể có Firebase
các dịch vụ được thêm vào quảng cáo. Xin lưu ý rằng trường project
cung cấp tập lệnh toàn cục
tên tài nguyên duy nhất cho một dự án.
Bạn có thể sử dụng bất kỳ giá trị project
nào được liệt kê trong phản hồi từ
availableProjects.list
để thêm các dịch vụ Firebase hoặc
thêm ứng dụng vào dự án của bạn.
Trong phần tiếp theo, chúng ta sẽ thêm các dịch vụ Firebase vào First Cloud Project
bằng cách sử dụng
tên tài nguyên projects/first-gcp-project
.
Thêm dịch vụ Firebase vào dự án
Dự án Google Cloud có thể tận dụng các dịch vụ do Firebase cung cấp. Trong trong phần này, bạn sẽ tìm hiểu cách thêm dịch vụ Firebase vào danh sách Google Cloud dự án theo phương thức lập trình. Xin lưu ý rằng bạn cũng có thể thêm Firebase các dịch vụ cho dự án Google Cloud hiện có của bạn trong bảng điều khiển Firebase.
YÊU CẦU
Gọi điện
projects.addFirebase
.
Bạn phải để trống phần nội dung yêu cầu cho lệnh gọi này.
Sau đây là ví dụ về Node.js để thêm các dịch vụ Firebase vào Google Cloud của bạn dự án:
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']);
}
}
KẾT QUẢ
Kết quả của lệnh gọi đến projects.addFirebase
là một
Operation
. Trước khi
có thể gọi các điểm cuối khác liên quan đến Firebase cho dự án của mình, thao tác này phải
thành công.
Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi
operations.get
cho đến khi giá trị của done
là true
và response
là
nhập FirebaseProject
. Nếu thao tác không thành công, error
của thao tác sẽ được đặt thành
google.rpc.Status
Sau đây là nội dung phản hồi của lệnh gọi 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"
}
}
}
Vì done
là true
và loại response
là FirebaseProject
nên phương thức
Dự án Google Cloud hiện có các dịch vụ của Firebase. Phản hồi cũng chứa
thông tin hữu ích khác về FirebaseProject
mới tạo, chẳng hạn như
projectNumber
và resources
mặc định. Operation
sẽ tự động
bị xoá sau khi hoàn tất.
Thêm ứng dụng Firebase vào dự án của bạn
Nhiều ứng dụng có thể sử dụng FirebaseProject
, bao gồm cả iOS, Android và web
của chúng tôi. Trong phần này, bạn sẽ tìm hiểu cách thêm Ứng dụng Firebase vào danh sách
FirebaseProject
theo phương thức lập trình. Lưu ý rằng bạn cũng có thể thêm Ứng dụng Firebase vào
dự án Firebase hiện tại của bạn trong bảng điều khiển Firebase.
Chọn một loại Ứng dụng Firebase để thêm vào dự án Firebase của bạn.
Bạn có thể thêm Ứng dụng Android Firebase vào dự án Firebase hiện tại.
YÊU CẦU
Gọi điện
projects.androidApps.create
.
Dưới đây là cách tạo nội dung yêu cầu:
Bắt buộc:
packageName
: Tên gói chuẩn của ứng dụng Android theo đúng cách sẽ xuất hiện trong Google Play Developer Console.
Không bắt buộc, nhưng nên dùng:
displayName
: Tên hiển thị của ứng dụng do người dùng chỉ định. Giá trị này là hữu ích khi tìm ứng dụng của bạn sau này trong bảng điều khiển của Firebase.
Trong nội dung yêu cầu cho ví dụ của mình, chúng ta sẽ sử dụng packageName
và
displayName
:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Dưới đây là ví dụ về Node.js để thêm ứng dụng Android của Firebase vào Firebase dự án:
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']);
}
}
KẾT QUẢ
Kết quả của lệnh gọi đến projects.androidApps.create
là một
Operation
. Trước khi
có thể gọi các điểm cuối khác liên quan đến Firebase cho dự án của mình, thao tác này phải
thành công.
Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi
operations.get
cho đến khi giá trị của done
là true
và response
là
nhập AndroidApp
. Nếu thao tác không thành công, error
của thao tác sẽ được đặt thành
google.rpc.Status
Sau đây là nội dung phản hồi của lệnh gọi 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"
}
}
Vì done
là true
và loại response
là AndroidApp
nên phương thức
FirebaseProject
hiện có một AndroidApp
. Phản hồi này cũng chứa các tên khác
thông tin hữu ích về Ứng dụng Android mới tạo trên Firebase, chẳng hạn như
Firebase appId
duy nhất. Operation
sẽ tự động bị xoá sau
hoàn thành.
Thêm chứng chỉ SHA
Bạn có thể thêm chứng chỉ SHA vào mọi Ứng dụng Android trên Firebase hiện có bằng cách gọi
projects.androidApps.sha.create
.
Nội dung yêu cầu cho lệnh gọi phương thức này phải có trường name
trống.
Kết quả của lệnh gọi này là một thực thể mới được tạo của
ShaCertificate
.
Khi gọi projects.androidApps.sha.create
, bạn cần cung cấp mã hợp lệ
Hàm băm chứng chỉ SHA-1 hoặc SHA-256. Bạn có thể lấy hàm băm SHA của hoạt động ký
chứng chỉ bằng lệnh signingReport
gradle:
./gradlew signingReport
Để biết thêm thông tin, hãy truy cập API của Google dành cho Android.
Liên kết dự án Firebase với tài khoản Google Analytics (Không bắt buộc)
Bạn có thể liên kết một
tài khoản Google Analytics với tài khoản hiện có
FirebaseProject
theo phương thức lập trình. Xin lưu ý rằng bạn cũng có thể liên kết
từ dự án Firebase sang Google Analytics trong
Các công cụ tích hợp
trong phần Cài đặt dự án.
Lệnh gọi đến projects.addGoogleAnalytics
yêu cầu analytics_resource
,
có thể là analyticsAccountId
hoặc analyticsPropertyId
:
Chỉ định một
analyticsAccountId
hiện có để cung cấp một Google Analytics mới trong tài khoản được chỉ định và liên kết thuộc tính mới với Dự án Firebase.Chỉ định một
analyticsPropertyId
hiện có để liên kết với Google Analytics với dự án Firebase của bạn.
Bạn có thể tìm thấy cả analyticsAccountId
của mình và mọi URL hiện có
analyticsPropertyId
trên Google Analytics
của bạn.
Khi bạn gọi projects.addGoogleAnalytics
:
Bước kiểm tra đầu tiên xác định liệu có luồng dữ liệu hiện có nào trong kho lưu trữ Google tài sản Analytics tương ứng với mọi Ứng dụng Firebase hiện có trong
FirebaseProject
(dựa trênpackageName
hoặcbundleId
được liên kết với luồng dữ liệu). Sau đó, các luồng dữ liệu và ứng dụng sẽ được liên kết (nếu có). Xin lưu ý rằng tính năng tự động liên kết này chỉ áp dụng cho ứng dụng Android và ứng dụng iOS.Nếu không tìm thấy luồng dữ liệu tương ứng cho các ứng dụng Firebase của bạn, thì dữ liệu mới chúng tôi cung cấp trong thuộc tính Google Analytics cho mỗi luồng Ứng dụng Firebase. Xin lưu ý rằng luồng dữ liệu mới luôn được cấp phép cho web Ứng dụng ngay cả khi ứng dụng đó từng được liên kết với một luồng dữ liệu trong tài sản Analytics.
Tìm hiểu thêm về hệ phân cấp và cấu trúc của tài khoản Google Analytics trong Tài liệu phân tích.
YÊU CẦU
Gọi điện
projects.addGoogleAnalytics
.
Trong nội dung yêu cầu của lệnh gọi mẫu đến project.addGoogleAnalytics
, chúng ta sẽ
chỉ định tài khoản Google Analytics analyticsAccountId
của chúng tôi. Cuộc gọi này sẽ
cung cấp một tài sản Google Analytics mới và liên kết tài sản mới đó với
FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Sau đây là ví dụ về cách Node.js có thể dùng để liên kết một dự án Firebase với một Google Analytics tài khoản:
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']);
}
}
KẾT QUẢ
Kết quả của lệnh gọi đến projects.addGoogleAnalytics
là một
Operation
. Trước khi
có thể gọi các điểm cuối khác liên quan đến Firebase cho dự án của mình, thao tác này phải
thành công.
Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi operations.get
trên
cho đến khi giá trị của done
là true
và response
thuộc loại
analyticsDetails
. Nếu thao tác không thành công, error
của thao tác sẽ được đặt thành
google.rpc.Status
Sau đây là nội dung phản hồi của lệnh gọi operations.get
:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
Vì done
đúng và loại response
là analyticsDetails
, nên phương thức
FirebaseProject
hiện được liên kết với tài khoản Google Analytics được chỉ định. Chiến lược phát hành đĩa đơn
Operation
sẽ tự động bị xoá sau khi hoàn tất.
Hoàn tất vị trí mặc định của dự án (Không bắt buộc)
Nếu dự án Firebase của bạn sẽ sử dụng Cloud Firestore, Cloud Storage hoặc ứng dụng App Engine, bạn có thể hoàn tất Google Cloud mặc định Vị trí tài nguyên của Nền tảng (GCP) cho dự án của mình theo phương thức lập trình. Xin lưu ý rằng bạn cũng có thể chọn một vị trí trong thời gian Bảng điều khiển Firebase.
Trước khi đặt vị trí này, hãy xem phần Chọn vị trí cho
dự án để biết thông tin về vị trí phù hợp nhất cho
dự án của bạn. Bạn cũng nên gọi
projects.availableLocations
để trả về danh sách các vị trí hợp lệ cho dự án của bạn vì nếu dự án của bạn
thuộc một tổ chức trên Google Cloud, thì chính sách tổ chức của bạn
có thể hạn chế các vị trí
đều hợp lệ cho dự án của bạn.
Việc gọi phương thức defaultLocation.finalize
này sẽ tạo một App Engine
ứng dụng có Cloud Storage mặc định
bộ chứa
nằm trong
locationId
mà bạn cung cấp trong nội dung yêu cầu.
Vị trí tài nguyên GCP mặc định có thể đã được chỉ định nếu
Project
đã có một ứng dụng App Engine hoặc ứng dụng này
Phương thức defaultLocation.finalize
đã được gọi trước đó.
YÊU CẦU
Gọi điện
projects.defaultLocation.finalize
.
Dưới đây là cách tạo nội dung yêu cầu:
Bắt buộc:
locationId
: Vị trí lưu trữ dữ liệu của bạn cho các dịch vụ GCP yêu cầu cài đặt vị trí, như Cloud Firestore hoặc Cloud Storage.
{
"locationId": "us-west2"
}
Dưới đây là ví dụ để Node.js hoàn tất vị trí mặc định của dự án:
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']);
}
}
KẾT QUẢ
Kết quả của lệnh gọi đến projects.defaultLocation.finalize
là một
Operation
. Trước khi
có thể gọi các điểm cuối khác liên quan đến Firebase cho dự án của mình, thao tác này phải
thành công.
Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi operations.get
trên
cho đến khi giá trị của done
là true
và response
của nó thuộc kiểu
google.protobuf.Empty
. Nếu thao tác không thành công, nội dung phản hồi
error
sẽ thuộc loại google.rpc.Status
. Operation
sẽ tự động
bị xoá sau khi hoàn tất.