Tải Firebase SDK từ các URL đặt trước

Firebase Hosting đặt trước các URL trên trang web của bạn bắt đầu bằng /__. Chiến dịch này không gian tên dành riêng giúp bạn dễ dàng sử dụng các sản phẩm khác của Firebase cùng với Firebase Hosting.

Các URL đặt trước này có sẵn cả khi bạn triển khai Firebase (firebase deploy) hoặc khi bạn chạy ứng dụng trên máy chủ cục bộ (firebase serve).

Thêm tập lệnh cho các URL đặt trước

Firebase Hosting được phân phát qua HTTP/2 khi triển khai, nên bạn có thể tăng hiệu suất bằng cách tải các tệp từ cùng một nguồn gốc. Firebase Hosting phục vụ phiên bản 8 của SDK Firebase JavaScript từ các URL đặc biệt được định dạng như sau:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Bạn chỉ nên tải các thư viện mà bạn dùng trong ứng dụng. Ví dụ: chỉ bao gồm AuthenticationCloud Firestore, hãy thêm các tập lệnh sau vào cuối <body> nhưng trước khi bạn sử dụng bất kỳ dịch vụ Firebase nào:

<body>
  <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
  <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
  <script src="/__/firebase/8.10.1/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.10.1/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
</body>

Tự động định cấu hình SDK

Cấu hình SDK tự động giúp bạn dễ dàng quản lý nhiều môi trường (chẳng hạn như môi trường phát triển, môi trường thử nghiệm và môi trường phát hành chính thức) từ một cơ sở mã duy nhất. Bằng cách dựa vào URL Hosting đặt trước, bạn có thể triển khai cùng một mã cho nhiều Firebase dự án.

Ngoài việc tự lưu trữ SDK, không gian tên dành riêng còn cung cấp tất cả cấu hình cần thiết để khởi chạy SDK cho Firebase dự án liên kết với trang web Hosting. Cấu hình Firebase này và Quá trình khởi chạy SDK do một tập lệnh mà bạn có thể trực tiếp đưa vào:

<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>

Khi bạn triển khai cho Firebase hoặc thử nghiệm ứng dụng cục bộ, tập lệnh này sẽ tự động định cấu hình SDK Firebase JavaScript cho dự án Firebase đang hoạt động và khởi chạy SDK.

Nếu bạn muốn tự kiểm soát quá trình khởi chạy, các giá trị cấu hình Firebase cũng có sẵn ở dạng JSON:

fetch('/__/firebase/init.json').then(async response => {
  firebase.initializeApp(await response.json());
});

Firebase JS SDK hiện có (từ các URL Hosting đặt trước)

Sản phẩm của Firebase Tài liệu tham khảo về thư viện (URL dành riêng)
Firebase Core
(bắt buộc)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analytics
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
App Check
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Authentication
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions for Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Firebase lượt cài đặt
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Cloud Messaging
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Để có trải nghiệm tối ưu khi sử dụng Cloud Messaging, hãy thêm cả Firebase SDK cho Analytics.

Cloud Storage
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Performance Monitoring
(bản phát hành thử nghiệm)
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Realtime Database
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Remote Config
(bản phát hành beta)
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Để có trải nghiệm tối ưu khi sử dụng Remote Config, hãy thêm cả Firebase SDK cho Analytics.

SDK Firebase JavaScript
(toàn bộ SDK)
<script src="/__/firebase/8.10.1/firebase.js"></script>

Trình trợ giúp xác thực

Firebase Authentication sử dụng để cung cấp JavaScript và HTML đặc biệt nhằm hoàn tất việc xác thực với qua OAuth. Điều này cho phép mỗi dự án Firebase có một giá trị riêng biệt Miền con Firebase, tăng mức độ bảo mật cho Firebase Authentication.

Ngoài ra, việc này cho phép bạn sử dụng miền tuỳ chỉnh của riêng mình cho authDomain có giá trị là firebase.initializeApp(). Nếu bạn định cấu hình miền tuỳ chỉnh cho Firebase Hosting, sau đó bạn cũng có thể chỉ định miền tuỳ chỉnh đó (thay vào đó của miền con web.app hoặc firebaseapp.com) khi khởi chạy Firebase SDK. Hãy xem bài viết Các phương pháp hay nhất để sử dụng signInWithRedirect để biết thêm thông tin chi tiết về cách sử dụng miền tuỳ chỉnh.

URL dành riêng và trình chạy dịch vụ

Nếu đang tạo một Ứng dụng web tiến bộ (PWA), bạn có thể tạo một dịch vụ có một trình thực thi "điều hướng dự phòng" và hiển thị một URL cụ thể theo mặc định nếu không khớp với danh sách các mục được lưu trước trong bộ nhớ đệm.

Nếu bạn đang sử dụng bộ nhớ đệm trước sw thư viện, bạn có thể thêm cài đặt danh sách trắng dự phòng điều hướng loại trừ không gian tên dành riêng:

{
  navigateFallbackWhitelist: [/^(?!\/__).*/]
}

Nhìn chung, bạn chỉ cần nhớ rằng không gian tên dấu gạch dưới đôi được dành riêng cho việc sử dụng Firebase và bạn không nên chặn các yêu cầu này trong worker dịch vụ.