Firebase App Hosting là lựa chọn phù hợp cho các ứng dụng web động được tạo bằng Firebase SDK 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á Firebase SDK và bắt đầu tạo 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 (chẳng hạn như Firebase App Hosting) cung cấp quy trình 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 gian tạo 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ạm vi lớn các chức năng của 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ữ lựa chọn kiểm soát chi tiết 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 tạo Admin SDK này cũng 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 JavaScript SDK, chiến lược này hoạt động trên App Hosting.
Ghi đè các giá trị được điền sẵn
Bạn có thể ghi đè cấu hình mặc định được tự động chèn. Xin lưu ý rằng các lựa chọn này khác nhau giữa Admin SDK và SDK JavaScript.
Admin SDK ghi đè
Để chỉ định các lựa chọn khởi tạo tuỳ chỉnh cho các dịch vụ như Realtime Database, Cloud Storage hoặc Cloud Functions (không bắt buộc), 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 một đối tượng JSON. Nếu không, SDK sẽ giả định rằng chuỗi này là đường dẫn của một tệp JSON chứa các lựa 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 để khởi chạy JavaScript SDK, 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 tạo tự động trong các môi trường khác
Quá trình khởi chạy tự động được thiết lập bằng tập lệnh npm postinstall khi bạn cài đặt Firebase JavaScript SDK. Tập lệnh sau khi cài đặt sẽ tìm biến môi trường FIREBASE_WEBAPP_CONFIG
. Biến này được thiết lập tự động trong môi trường App Hosting Cloud Build.
Nếu đang cài đặt JS SDK bên ngoài Cloud Build, bạn sẽ cần tự thiết lập biến môi trường này khi cài đặt Firebase JavaScript SDK.
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 của Firebase.
Từ mộ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 Firebase JS SDK hoặc các Firebase client SDK 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). SDK này bao gồm các công cụ để tiếp tục các phiên Firebase trải rộng trên phân chia kết xuất phía máy khách (CSR) / 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, khá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 một phiên xác thực Firebase được tạo trong ứng dụng.
Để biết thông tin chi tiết về cách sử dụng FirebaseServerApp
cho những mục đích này, hãy xem bài viết Sử dụng Firebase trong các ứng dụng web động có tính năng SSR.
Bật App Check trong ứng dụng web
Bạn có thể sử dụng App Check để tăng cường tính bảo mật cho ứng dụng web động của mình 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 các ứng dụng web động có SSR, bạn có thể bảo vệ các phần phụ trợ App Hosting của mình khỏi hành vi sai trái.