โหลด Firebase SDK จาก URL ที่สงวนไว้

Firebase Hosting ขอสงวน URL ในเว็บไซต์ของคุณที่ขึ้นต้นด้วย /__ เนมสเปซที่สงวนไว้นี้ทำให้ใช้ผลิตภัณฑ์ Firebase อื่นๆ ร่วมกับ Firebase Hosting ได้ง่ายขึ้น

URL ที่สงวนไว้เหล่านี้สามารถใช้ได้ทั้งเมื่อคุณปรับใช้กับ Firebase ( firebase deploy ) หรือเมื่อคุณเรียกใช้แอปของคุณบนเซิร์ฟเวอร์ภายในเครื่อง ( firebase serve )

เพิ่มสคริปต์สำหรับ URL ที่สงวนไว้

เนื่องจาก Firebase Hosting ให้บริการผ่าน HTTP/2 เมื่อปรับใช้ คุณจึงสามารถเพิ่มประสิทธิภาพได้โดยการโหลดไฟล์จากต้นทางเดียวกัน Firebase Hosting ให้บริการ Firebase JavaScript SDK ทุกเวอร์ชันจาก URL พิเศษที่มีรูปแบบดังนี้:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

เราขอแนะนำอย่างยิ่งให้โหลดเฉพาะ ไลบรารี ที่คุณใช้ในแอปของคุณ ตัวอย่างเช่น หากต้องการรวมเฉพาะการตรวจสอบสิทธิ์และ Cloud Firestore ให้เพิ่มสคริปต์ต่อไปนี้ที่ด้านล่างของแท็ก <body> แต่ก่อนที่คุณจะใช้บริการ Firebase

<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>

SDK การกำหนดค่าอัตโนมัติ

การกำหนดค่า SDK อัตโนมัติทำให้ง่ายต่อการจัดการสภาพแวดล้อมที่หลากหลาย (เช่น dev, staging และ production) จากฐานรหัสเดียว คุณสามารถใช้รหัสเดียวกันนี้กับโปรเจ็กต์ Firebase หลายโปรเจ็กต์ได้โดยใช้ URL ของโฮสติ้งที่สงวนไว้

นอกจากการโฮสต์ SDK เองแล้ว เนมสเปซที่สงวนไว้ยังมีการกำหนดค่าทั้งหมดที่จำเป็นในการเริ่มต้น SDK สำหรับโปรเจ็กต์ Firebase ที่เชื่อมโยงกับไซต์โฮสติ้ง การกำหนดค่า Firebase และการเริ่มต้น SDK นี้จัดทำโดยสคริปต์ที่คุณรวมได้โดยตรง:

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

เมื่อคุณปรับใช้กับ Firebase หรือทดสอบแอปในเครื่อง สคริปต์นี้จะกำหนดค่า Firebase JavaScript SDK สำหรับโปรเจ็กต์ Firebase ที่ใช้งานอยู่ โดยอัตโนมัติและเริ่มต้น SDK

หากคุณต้องการควบคุมการเริ่มต้นด้วยตนเอง ค่าการกำหนดค่า Firebase ก็มีให้ใช้งานในรูปแบบ JSON ด้วย

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

Firebase JS SDK ที่พร้อมใช้งาน (จาก URL โฮสติ้งที่สงวนไว้)

ผลิตภัณฑ์ Firebase การอ้างอิงห้องสมุด (URL ที่สงวนไว้)
แกน Firebase
(ที่จำเป็น)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
การวิเคราะห์
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
ตรวจสอบแอพ
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
การตรวจสอบสิทธิ์
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
ฟังก์ชันระบบคลาวด์สำหรับ Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
การติดตั้ง Firebase
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
การส่งข้อความบนคลาวด์
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

เพื่อประสบการณ์การใช้งานที่ดีที่สุดโดยใช้การรับส่งข้อความในระบบคลาวด์ ให้เพิ่ม Firebase SDK สำหรับ Analytics ด้วย

การจัดเก็บเมฆ
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
การตรวจสอบประสิทธิภาพ
( รุ่นเบต้า )
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
ฐานข้อมูลเรียลไทม์
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
การกำหนดค่าระยะไกล
( รุ่นเบต้า )
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

เพื่อประสบการณ์ที่ดีที่สุดโดยใช้การกำหนดค่าระยะไกล ให้เพิ่ม Firebase SDK สำหรับ Analytics ด้วย

Firebase JavaScript SDK
(SDK ทั้งหมด)
<script src="/__/firebase/8.10.1/firebase.js"></script>

ผู้ช่วยตรวจสอบสิทธิ์

การ ตรวจสอบสิทธิ์ Firebase ใช้เนมสเปซที่สงวนไว้เพื่อจัดเตรียม JavaScript และ HTML พิเศษเพื่อดำเนินการตรวจสอบสิทธิ์กับผู้ให้บริการผ่าน OAuth ซึ่งช่วยให้โปรเจ็กต์ Firebase แต่ละโปรเจ็กต์มีโดเมนย่อยของ Firebase ที่ไม่ซ้ำกัน ช่วยเพิ่มความปลอดภัยให้กับการตรวจสอบสิทธิ์ Firebase

นอกจากนี้ คุณยังใช้โดเมนที่กำหนดเองสำหรับตัวเลือก authDomain ของ firebase.initializeApp firebase.initializeApp() ได้ หากคุณ กำหนดค่าโดเมนที่กำหนดเอง สำหรับโฮสติ้งของ Firebase คุณจะระบุโดเมนที่กำหนดเองนั้นได้ (แทนที่จะเป็นโดเมนย่อยของ web.app หรือ firebaseapp.com ) เมื่อเริ่มต้น Firebase SDK

URL ที่สงวนไว้และพนักงานบริการ

หากคุณกำลังสร้าง Progressive Web App (PWA) คุณอาจสร้างพนักงานบริการที่มี "การนำทางสำรอง" และแสดงผล URL เฉพาะตามค่าเริ่มต้น หากไม่ตรงกับรายการของรายการที่เก็บไว้ล่วงหน้า

หากคุณกำลังใช้ไลบรารี sw-precache คุณสามารถเพิ่มการตั้งค่ารายการที่อนุญาตพิเศษของการนำทางทางเลือกที่ไม่รวมเนมสเปซที่สงวนไว้:

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

โดยทั่วไปแล้ว อย่าลืมว่าเนมสเปซขีดล่างคู่สงวนไว้สำหรับการใช้ Firebase และคุณไม่ควรสกัดกั้นคำขอเหล่านี้ในพนักงานบริการของคุณ