แนวทางปฏิบัติแนะนำทั่วไปในการตั้งค่าโปรเจ็กต์ Firebase

หน้านี้แสดงแนวทางปฏิบัติแนะนำทั่วไปในระดับสูงสำหรับการตั้งค่าโปรเจ็กต์ Firebase และการลงทะเบียนแอปกับโปรเจ็กต์ เพื่อให้คุณมีเวิร์กโฟลว์การพัฒนาที่ชัดเจนซึ่งใช้สภาพแวดล้อมที่แตกต่างกัน เมื่อคุณคุ้นเคยกับแนวทางปฏิบัติแนะนำในหน้านี้แล้ว โปรดดูหลักเกณฑ์ด้านความปลอดภัยทั่วไป

ทำความเข้าใจลำดับชั้นของโปรเจ็กต์ 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 เดียวกัน แอปที่ติดป้ายกำกับแยกกันแต่ละแอปไม่ควรแชร์ข้อมูลกับแอปอื่นๆ (เนื่องจากเหตุผลด้านความเป็นส่วนตัว)

ขั้นตอนถัดไป