Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

โหลด 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.6.7/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.6.7/firebase-auth.js"></script>
  <script src="/__/firebase/8.6.7/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.6.7/firebase-app.js"></script>
การวิเคราะห์
<script src="/__/firebase/8.6.7/firebase-analytics.js"></script>
การตรวจสอบสิทธิ์
<script src="/__/firebase/8.6.7/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.6.7/firebase-firestore.js"></script>
ฟังก์ชันระบบคลาวด์สำหรับ Firebase Client SDK
<script src="/__/firebase/8.6.7/firebase-functions.js"></script>
การส่งข้อความบนคลาวด์
<script src="/__/firebase/8.6.7/firebase-messaging.js"></script>

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

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

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

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

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

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

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

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

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

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

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

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