หน้านี้แสดงแนวทางปฏิบัติแนะนำทั่วไปในระดับสูงสำหรับการตั้งค่าโปรเจ็กต์ Firebase และการลงทะเบียนแอปกับโปรเจ็กต์ เพื่อให้คุณมีเวิร์กโฟลว์การพัฒนาที่ชัดเจนซึ่งใช้สภาพแวดล้อมที่แตกต่างกัน เมื่อคุณคุ้นเคยกับแนวทางปฏิบัติแนะนำในหน้านี้แล้ว โปรดดูหลักเกณฑ์ด้านความปลอดภัยทั่วไป
ทำความเข้าใจลำดับชั้นของโปรเจ็กต์ Firebase
แผนภาพนี้แสดงลำดับชั้นพื้นฐานของโปรเจ็กต์ Firebase ความสัมพันธ์ที่สำคัญมีดังนี้
โปรเจ็กต์ Firebase เปรียบเสมือนคอนเทนเนอร์สำหรับแอปทั้งหมด รวมถึงทรัพยากรและบริการที่จัดสรรไว้สำหรับโปรเจ็กต์
โปรเจ็กต์ Firebase สามารถมีแอป Firebase ที่ลงทะเบียนไว้ได้มากกว่า 1 แอป (เช่น แอปเวอร์ชัน iOS และ Android หรือแอปเวอร์ชันฟรีและเวอร์ชันที่ต้องซื้อ)
แอป Firebase ทั้งหมดที่ลงทะเบียนกับโปรเจ็กต์ Firebase เดียวกันจะแชร์และมีสิทธิ์เข้าถึงทรัพยากรและบริการเดียวกันทั้งหมดที่จัดสรรไว้สำหรับโปรเจ็กต์ ตัวอย่างเช่น
แอป Firebase ทั้งหมดที่ลงทะเบียนกับโปรเจ็กต์ Firebase เดียวกันจะใช้แบ็กเอนด์เดียวกัน เช่น Firebase Hosting, Authentication, Realtime Database, Cloud Firestore, Cloud Storage และ Cloud Functions
แอป Firebase ทั้งหมดที่ลงทะเบียนกับโปรเจ็กต์ Firebase เดียวกันจะเชื่อมโยงกับพร็อพเพอร์ตี้ Google Analytics เดียวกัน โดยที่แอป Firebase แต่ละแอปเป็นสตรีมข้อมูลแยกต่างหากในพร็อพเพอร์ตี้นั้น
โปรเจ็กต์ Google Cloud อยู่ในลำดับชั้นนี้อย่างไร
แง่มุมหนึ่งของลำดับชั้นโปรเจ็กต์ Firebase ที่ไม่แสดงในแผนภาพด้านบนคือความสัมพันธ์กับโปรเจ็กต์ Google Cloud โปรเจ็กต์ Firebase เป็นเพียงโปรเจ็กต์ Google Cloud ที่มีการกำหนดค่าและบริการเฉพาะ Firebase เพิ่มเติมที่เปิดใช้ โปรดทราบว่าแอปทั้งหมดที่ลงทะเบียนในโปรเจ็กต์ Firebase เดียวกันจะแชร์และมีสิทธิ์เข้าถึงทรัพยากรและบริการ Google Cloud เดียวกันทั้งหมดด้วย
ดูข้อมูลเพิ่มเติมเกี่ยวกับความสัมพันธ์ระหว่าง Firebase กับ Google Cloud ในทำความเข้าใจโปรเจ็กต์ Firebase
การลงทะเบียนตัวแปรของแอปกับโปรเจ็กต์ Firebase
เคล็ดลับสำคัญในการลงทะเบียนตัวแปรของแอปกับโปรเจ็กต์ Firebase มีดังนี้
ตรวจสอบว่าแอปทั้งหมดที่ลงทะเบียนกับโปรเจ็กต์ Firebase เป็นตัวแปรแพลตฟอร์มของแอปพลิเคชันเดียวกันจากมุมมองของผู้ใช้ปลายทาง ลงทะเบียนแอปหรือเกมเดียวกันในเวอร์ชัน iOS, Android และเว็บกับโปรเจ็กต์ Firebase เดียวกัน
หากคุณมีตัวแปรบิลด์หลายรายการที่สามารถใช้ทรัพยากร Firebase เดียวกัน ให้ลงทะเบียนตัวแปรเหล่านั้นกับโปรเจ็กต์ Firebase เดียวกัน ตัวอย่างเช่น บล็อกและเว็บแอปในโปรเจ็กต์เดียวกัน หรือแอปเดียวกันทั้งเวอร์ชันฟรีและเวอร์ชันที่ต้องชำระเงินในโปรเจ็กต์เดียวกัน
หากคุณมีตัวแปรบิลด์หลายรายการที่อิงตามสถานะการเผยแพร่ (แทนที่จะอิงตามกิจกรรมของผู้ใช้ปลายทางทั่วไปหรือการเข้าถึงตามที่ระบุไว้ข้างต้น) ให้ลงทะเบียนตัวแปรแต่ละรายการกับโปรเจ็กต์ Firebase แยกกัน ตัวอย่างเช่น บิลด์แก้ไขข้อบกพร่องกับบิลด์ที่เผยแพร่ ให้ลงทะเบียนบิลด์แต่ละรายการในโปรเจ็กต์ Firebase ของตนเอง
บิลด์ที่อิงตามสถานะการเผยแพร่ไม่ควรใช้ทรัพยากร Firebase เดียวกัน เนื่องจากมีความเสี่ยงที่ข้อมูลการแก้ไขข้อบกพร่องจะปนเปื้อนหรือลบล้างข้อมูลเวอร์ชันที่ใช้งานจริง
ตัวแปรแพลตฟอร์มของตัวแปรบิลด์แต่ละรายการเหล่านี้ควรอยู่ในโปรเจ็กต์ Firebase เดียวกัน ตัวอย่างเช่น ลงทะเบียนทั้งบิลด์การแก้ไขข้อบกพร่อง iOS และ Android ในโปรเจ็กต์ Firebase "dev" เนื่องจากทั้ง 2 บิลด์สามารถโต้ตอบกับข้อมูลและทรัพยากรที่ไม่ใช่เวอร์ชันที่ใช้งานจริงเดียวกันได้
การหลีกเลี่ยงการใช้สถาปัตยกรรมแบบ Multi-Tenancy
การใช้สถาปัตยกรรมแบบ Multi-Tenancy อาจทำให้เกิดข้อกังวลร้ายแรงเกี่ยวกับการกำหนดค่าและความเป็นส่วนตัวของข้อมูล ซึ่งรวมถึงปัญหาที่ไม่ได้ตั้งใจเกี่ยวกับการรวมข้อมูลวิเคราะห์ การตรวจสอบสิทธิ์ที่ใช้ร่วมกัน โครงสร้างฐานข้อมูลที่ซับซ้อนเกินไป และความยากลำบากเกี่ยวกับกฎความปลอดภัย
โดยทั่วไปแล้ว หากชุดแอปไม่ได้ใช้ข้อมูลและการกำหนดค่าเดียวกัน ให้พิจารณาลงทะเบียนแอปแต่ละแอปกับโปรเจ็กต์ Firebase ที่แตกต่างกัน
เช่น หากคุณพัฒนาแอปพลิเคชันไวท์เลเบล แอปที่ติดป้ายกำกับแยกกันแต่ละแอปควรมีโปรเจ็กต์ Firebase ของตัวเอง และเวอร์ชัน iOS และ Android ของป้ายกำกับนั้นควรอยู่ในโปรเจ็กต์ Firebase เดียวกัน แอปที่ติดป้ายกำกับแยกกันแต่ละแอปไม่ควรแชร์ข้อมูลกับแอปอื่นๆ (เนื่องจากเหตุผลด้านความเป็นส่วนตัว)
ขั้นตอนถัดไป
อ่านหลักเกณฑ์ด้านความปลอดภัยทั่วไปสำหรับสภาพแวดล้อมต่างๆ คุณต้องการตรวจสอบว่าสภาพแวดล้อมแต่ละรายการและข้อมูลในนั้นปลอดภัย