Firebase Hosting สงวน URL ในเว็บไซต์ของคุณที่ขึ้นต้นด้วย /__
เนมสเปซที่สงวนไว้นี้ช่วยให้ใช้ผลิตภัณฑ์ Firebase อื่นๆ ร่วมกับโฮสติ้ง Firebase ได้ง่ายขึ้น
URL ที่สงวนไว้เหล่านี้สามารถใช้ได้ทั้งเมื่อคุณปรับใช้กับ Firebase ( firebase deploy
) หรือเมื่อคุณเรียกใช้แอปของคุณบนเซิร์ฟเวอร์ภายใน ( firebase serve
)
เพิ่มสคริปต์สำหรับ URL ที่สงวนไว้
เนื่องจาก Firebase Hosting ให้บริการผ่าน HTTP/2 เมื่อปรับใช้ คุณจึงเพิ่มประสิทธิภาพได้ด้วยการโหลดไฟล์จากแหล่งที่มาเดียวกัน Firebase Hosting ให้บริการ Firebase JavaScript SDK เวอร์ชัน 8 จาก 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) จาก codebase เดียว เมื่อใช้ URL โฮสติ้งที่สงวนไว้ คุณจะปรับใช้โค้ดเดียวกันกับโปรเจ็กต์ Firebase หลายโปรเจ็กต์ได้
นอกจากการโฮสต์ 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> เพื่อประสบการณ์ที่ดีที่สุดในการใช้ Cloud Messaging ให้เพิ่ม 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 Authentication
นอกจากนี้ยังอนุญาตให้คุณใช้โดเมนที่คุณกำหนดเองสำหรับตัวเลือก authDomain
ของ firebase.initializeApp()
หากคุณ กำหนดค่าโดเมนที่กำหนดเอง สำหรับโฮสติ้ง Firebase คุณจะระบุโดเมนที่กำหนดเองนั้นได้ด้วย (แทนที่จะเป็นโดเมนย่อยของ web.app
หรือ firebaseapp.com
) เมื่อเริ่มต้น Firebase SDK
URL ที่สงวนไว้และพนักงานบริการ
หากคุณกำลังสร้าง Progressive Web App (PWA) คุณอาจสร้างพนักงานบริการที่มี "การนำทางสำรอง" และแสดงผล URL เฉพาะตามค่าเริ่มต้น หากไม่ตรงกับรายการของรายการที่แคชไว้ล่วงหน้า
หากคุณใช้ไลบรารี sw-precache คุณสามารถเพิ่มการตั้งค่ารายการที่อนุญาตพิเศษสำหรับการนำทางทางเลือกที่ไม่รวมเนมสเปซที่สงวนไว้:
{
navigateFallbackWhitelist: [/^(?!\/__).*/]
}
โดยทั่วไป โปรดจำไว้ว่าเนมสเปซที่มีเครื่องหมายขีดล่างคู่ถูกสงวนไว้สำหรับการใช้งาน Firebase และคุณไม่ควรขัดขวางคำขอเหล่านี้ในพนักงานบริการของคุณ