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 และคุณไม่ควรสกัดกั้นคำขอเหล่านี้ในพนักงานบริการของคุณ