Firebase App Hosting là một lựa chọn phù hợp cho các ứng dụng web động được tạo bằng SDK Firebase JavaScript và Firebase Admin SDK cho Node.js. Trong một ứng dụng web đầy đủ tính năng, các SDK Firebase như Authentication, Cloud Firestore và App Check đóng vai trò quan trọng. Hướng dẫn này mô tả một số chiến lược chính để giúp tối ưu hoá SDK Firebase và bắt đầu xây dựng Firebase vào ứng dụng web của bạn trên Firebase App Hosting.
Tự động khởi chạy Firebase Admin SDK và SDK web
Các môi trường của Google như Firebase App Hosting cung cấp tính năng khởi chạy ứng dụng đơn giản thông qua lệnh gọi hàm khởi tạo không có đối số tại thời điểm tạo bản dựng và thời gian chạy. Đây là một tính năng của cả Firebase Admin SDK cho Node.js – một SDK phía máy chủ giúp mở khoá một phần lớn chức năng Firebase và có thể rất hữu ích trong ứng dụng web của bạn – và SDK Firebase JavaScript.
Với initializeApp()
, bạn có thể cho phép Firebase App Hosting tự động điền cấu hình ứng dụng web cho bạn trong khi vẫn giữ được tuỳ chọn kiểm soát chi tiết đối với các giá trị cụ thể nếu bạn muốn ghi đè các giá trị mặc định.
Khởi chạy mà không có đối số
Để khởi chạy SDK Firebase JavaScript hoặc Firebase Admin SDK bằng các giá trị cấu hình mặc định, hãy sử dụng initializeApp()
mà không cung cấp bất kỳ đối số nào:
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
SDK JavaScript
import { initializeApp } from 'firebase/app';
const app = initializeApp();
Chiến lược khởi chạy Admin SDK này hoạt động trong App Hosting cũng như các môi trường máy chủ khác của Google, bao gồm Cloud Run, App Engine và Cloud Functions. Đối với SDK JavaScript, chiến lược này hoạt động trên App Hosting.
Ghi đè các giá trị được điền tự động
Bạn có thể ghi đè cấu hình mặc định được tự động chèn. Xin lưu ý rằng các tuỳ chọn này khác nhau giữa Admin SDK và SDK JavaScript.
Ghi đè Admin SDK
Để tuỳ ý chỉ định các tuỳ chọn khởi chạy tuỳ chỉnh cho các dịch vụ như Cơ sở dữ liệu theo thời gian thực, Bộ nhớ trên đám mây hoặc Hàm trên đám mây, hãy sử dụng biến môi trường FIREBASE_CONFIG
. Nếu nội dung của biến FIREBASE_CONFIG
bắt đầu bằng ký tự {
, thì nội dung đó sẽ được phân tích cú pháp dưới dạng đối tượng JSON. Nếu không, SDK sẽ giả định rằng chuỗi đó là đường dẫn của tệp JSON chứa các tuỳ chọn.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
Ghi đè SDK JavaScript
Để ghi đè các giá trị FIREBASE_WEBAPP_CONFIG
mặc định mà App Hosting chèn vào để khởi chạy SDK JavaScript, bạn có thể chỉ định các giá trị trong apphosting.yaml
:
# apphosting.yaml
env:
- variable: FIREBASE_WEBAPP_CONFIG
value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'
Sử dụng tính năng khởi chạy tự động trong các môi trường khác
Bạn có thể thiết lập tính năng khởi chạy tự động bằng tập lệnh sau khi cài đặt npm khi cài đặt SDK JavaScript Firebase. Tập lệnh sau khi cài đặt sẽ tìm kiếm biến môi trường FIREBASE_WEBAPP_CONFIG
. Biến này được đặt tự động trong môi trường Cloud Build App Hosting.
Nếu đang cài đặt SDK JS bên ngoài Cloud Build, chẳng hạn như trên máy để sử dụng với Bộ trình mô phỏng Firebase, bạn sẽ cần tự đặt biến môi trường này khi cài đặt SDK JavaScript Firebase.
Cách thiết lập môi trường theo cách thủ công khi cài đặt:
Sao chép đối tượng cấu hình ứng dụng web Firebase từ bảng điều khiển Firebase.
Từ thiết bị đầu cuối, hãy đặt biến môi trường
FIREBASE_WEBAPP_CONFIG
trước khi chạy lệnhnpm install
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
Bất cứ khi nào bạn thay đổi dự án Firebase hoặc ứng dụng web, hãy chạy lại lệnh này.
Sử dụng FirebaseServerApp
cho SSR
Nếu đã làm việc với SDK JS Firebase hoặc các SDK ứng dụng Firebase khác trong quá trình phát triển ứng dụng web, có thể bạn đã quen thuộc với giao diện FirebaseApp
và cách sử dụng giao diện này để định cấu hình các thực thể ứng dụng. Để hỗ trợ các thao tác tương tự ở phía máy chủ, Firebase cung cấp FirebaseServerApp
.
FirebaseServerApp
là một biến thể của FirebaseApp
để sử dụng trong môi trường kết xuất phía máy chủ (SSR). Công cụ này bao gồm các công cụ để tiếp tục các phiên Firebase trên cả phương thức kết xuất phía máy khách (CSR) và phương thức kết xuất phía máy chủ.
Sử dụng FirebaseServerApp
để:
- Thực thi mã phía máy chủ trong ngữ cảnh người dùng, trái ngược với Firebase Admin SDK có toàn quyền quản trị.
- Cho phép sử dụng App Check trong môi trường SSR.
- Tiếp tục phiên Xác thực Firebase đã tạo trong ứng dụng.
Để biết thông tin chi tiết đầy đủ về cách sử dụng FirebaseServerApp
cho những mục đích này, hãy xem phần Sử dụng Firebase trong ứng dụng web động bằng SSR.
Bật App Check trong ứng dụng web
Bạn có thể sử dụng App Check để tăng cường bảo mật cho ứng dụng web động trên App Hosting. Bằng cách triển khai một số chiến lược cụ thể phía máy chủ được mô tả trong phần Sử dụng Firebase trong ứng dụng web động bằng SSR, bạn có thể bảo vệ phần phụ trợ App Hosting khỏi hành vi lạm dụng.