ทำความเข้าใจโปรเจ็กต์ Firebase

หน้านี้แสดงภาพรวมคร่าวๆ ของแนวคิดสําคัญหลายประการเกี่ยวกับโปรเจ็กต์ Firebase โปรดคลิกลิงก์เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับฟีเจอร์ บริการ เครื่องมือ และแนวทางปฏิบัติแนะนำ (หากมี)

ความสัมพันธ์ระหว่างโปรเจ็กต์ แอป และผลิตภัณฑ์ Firebase

โปรเจ็กต์ Firebase คือเอนทิตีระดับบนสุดของ Firebase ในโปรเจ็กต์ คุณสามารถลงทะเบียนแอป Apple, Android หรือเว็บได้ หลังจากลงทะเบียนแอปกับ Firebase แล้ว คุณสามารถเพิ่ม Firebase SDK ให้กับผลิตภัณฑ์ Firebase ได้ไม่จํากัดจํานวน เช่น Analytics, Cloud Firestore, Performance Monitoring หรือ Remote Config

ดูข้อมูลเพิ่มเติมโดยละเอียดเกี่ยวกับกระบวนการนี้ในคู่มือเริ่มต้นใช้งานสำหรับแพลตฟอร์มของคุณ
iOS+ | Android | เว็บ | Unity | C++ | Flutter

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

ความสัมพันธ์ระหว่างโปรเจ็กต์ Firebase กับ Google Cloud

เมื่อสร้างโปรเจ็กต์ Firebase ใหม่ เท่ากับว่าคุณกำลังสร้างโปรเจ็กต์ Google Cloud อยู่เบื้องหลัง คุณสามารถสร้างGoogle Cloudโปรเจ็กต์ก่อนแล้วค่อยเพิ่ม Firebase ลงในโปรเจ็กต์ในภายหลังก็ได้ คุณสามารถมองGoogle Cloudโปรเจ็กต์เป็นคอนเทนเนอร์เสมือนสำหรับข้อมูล โค้ด การกําหนดค่า และบริการ

โปรดทราบว่า Firebase จะเพิ่มป้ายกํากับ firebase:enabled ให้กับโปรเจ็กต์ของคุณในคอนโซล Google Cloud โดยอัตโนมัติในหน้าป้ายกํากับ ของป้ายกํากับ ของโปรเจ็กต์ Firebase ทั้งหมด ดูข้อมูลเพิ่มเติมเกี่ยวกับป้ายกำกับนี้ได้ในคำถามที่พบบ่อย

เนื่องจากโปรเจ็กต์ Firebase เป็นโปรเจ็กต์ Google Cloud

  • คุณสามารถเข้าถึงและโต้ตอบกับโปรเจ็กต์ในคอนโซล Firebase รวมถึงในคอนโซล Google Cloud และคอนโซล Google APIs

  • คุณสามารถโต้ตอบกับโปรเจ็กต์ได้โดยใช้ Firebase CLI, gcloud CLI และทรัพยากร Terraform จาก Google

  • คุณใช้ผลิตภัณฑ์และ API จากทั้ง Firebase และ Google Cloud ในโปรเจ็กต์ได้

  • สิทธิ์และบทบาท IAM สำหรับโปรเจ็กต์จะแชร์ระหว่าง Firebase กับ Google Cloud สิทธิ์เข้าถึงที่สมาชิกโปรเจ็กต์ (หรือผู้ใช้หลัก) มีในโปรเจ็กต์ Google Cloud จะมีผลกับโปรเจ็กต์ Firebase ด้วย (และในทางกลับกัน)

  • การเรียกเก็บเงินสำหรับโปรเจ็กต์จะแชร์ระหว่าง Firebase และ Google Cloud หากเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์ Google Cloud โปรเจ็กต์ Firebase ของคุณจะใช้แพ็กเกจราคาแบบจ่ายเมื่อใช้ของ Blaze ใน Firebase

  • ระบบจะแชร์ตัวระบุที่ไม่ซ้ำกันของโปรเจ็กต์ (เช่น หมายเลขโปรเจ็กต์และรหัสโปรเจ็กต์) กับ Firebase และ Google Cloud

  • ลําดับชั้นทรัพยากรที่ใช้กับโปรเจ็กต์ Google Cloud (เช่น องค์กร โฟลเดอร์ เป็นต้น) จะมีผลกับโปรเจ็กต์ Firebase ด้วย

  • การลบโปรเจ็กต์จะเป็นการลบโปรเจ็กต์ใน Firebase และ Google Cloud ด้วย

  • การลบหรือแก้ไขทรัพยากรหรือข้อมูลภายในโปรเจ็กต์จะมีผลกับทั้ง Firebase และ Google Cloud

การตั้งค่าโปรเจ็กต์ Firebase และการลงทะเบียนแอป

คุณตั้งค่าโปรเจ็กต์ Firebase และลงทะเบียนแอปได้ในคอนโซล Firebase (หรือสำหรับกรณีการใช้งานขั้นสูง ให้ใช้ Firebase Management REST API หรือ Firebase CLI) เมื่อตั้งค่าโปรเจ็กต์และลงทะเบียนแอป คุณจะต้องตัดสินใจเกี่ยวกับองค์กรและเพิ่มข้อมูลการกําหนดค่าเฉพาะ Firebase ลงในโปรเจ็กต์ในเครื่อง

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

การโต้ตอบกับโปรเจ็กต์ Firebase

นอกจาก SDK ของผลิตภัณฑ์แล้ว คุณยังโต้ตอบกับโปรเจ็กต์ Firebase ได้โดยตรงโดยใช้เครื่องมือและอินเทอร์เฟซต่างๆ

คอนโซล Firebase

คอนโซล Firebase มีสภาพแวดล้อมที่สมบูรณ์ที่สุดสำหรับจัดการผลิตภัณฑ์ แอป และการตั้งค่าระดับโปรเจ็กต์ของ Firebase

แผงด้านซ้ายของคอนโซลจะแสดงผลิตภัณฑ์ Firebase ซึ่งจัดระเบียบตามหมวดหมู่ระดับบนสุด ที่ด้านบนของแผงด้านซ้าย ให้เข้าถึงการตั้งค่าของโปรเจ็กต์โดยคลิก การตั้งค่าของโปรเจ็กต์ประกอบด้วยการผสานรวม สิทธิ์เข้าถึง และการเรียกเก็บเงิน

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

โปรดทราบว่าเนื่องจากโปรเจ็กต์ Firebase เป็นโปรเจ็กต์ Google Cloud ด้วย คุณจึงอาจพบว่างานหรือผลิตภัณฑ์ต่างๆ กำหนดให้ต้องใช้คอนโซล Google Cloud แทนคอนโซล Firebase

Firebase CLI (เครื่องมือบรรทัดคำสั่ง)

นอกจากนี้ Firebase ยังมี Firebase CLI สำหรับกำหนดค่าและจัดการผลิตภัณฑ์ Firebase บางรายการ เช่น Firebase Hosting, Cloud Functions for Firebase และ Firebase Extensions

หลังจากติดตั้ง CLI แล้ว คุณจะมีสิทธิ์เข้าถึงคําสั่ง firebase ระดับองค์กร ใช้ CLI เพื่อลิงก์ไดเรกทอรีแอปในเครื่องกับโปรเจ็กต์ Firebase จากนั้นทำให้ใช้งานได้เนื้อหาที่โฮสต์ใน Firebase เวอร์ชันใหม่หรืออัปเดตฟังก์ชัน

Firebase Management REST API

การใช้ Firebase Management REST API ช่วยให้คุณจัดการโปรเจ็กต์ Firebase โดยใช้โปรแกรมได้ เช่น คุณสามารถลงทะเบียนแอปกับโปรเจ็กต์แบบเป็นโปรแกรมหรือแสดงรายการแอปที่ลงทะเบียนแล้ว (iOS+ | Android | เว็บ)

ตัวระบุโปรเจ็กต์ Firebase

โปรเจ็กต์ Firebase สามารถระบุได้ในแบ็กเอนด์ของ Firebase และในอินเทอร์เฟซต่างๆ สําหรับนักพัฒนาซอฟต์แวร์โดยใช้ตัวระบุต่างๆ ซึ่งรวมถึงชื่อโปรเจ็กต์ หมายเลขโปรเจ็กต์ และรหัสโปรเจ็กต์

ชื่อโปรเจ็กต์

เมื่อสร้างโปรเจ็กต์ คุณต้องระบุชื่อโปรเจ็กต์ ตัวระบุนี้คือชื่อสำหรับใช้ภายในเท่านั้นสำหรับโปรเจ็กต์ในคอนโซล Firebase, คอนโซล Google Cloud และ Firebase CLI ชื่อโปรเจ็กต์จะไม่แสดงในผลิตภัณฑ์ บริการ หรือทรัพยากร Firebase หรือ Google Cloud ที่แสดงต่อสาธารณะ เพียงแต่มีไว้เพื่อช่วยให้คุณแยกความแตกต่างระหว่างโปรเจ็กต์หลายรายการได้ง่ายขึ้น

คุณแก้ไขชื่อโปรเจ็กต์ได้ทุกเมื่อในการตั้งค่าโปรเจ็กต์ของคอนโซลFirebase ชื่อโปรเจ็กต์จะแสดงในแผงด้านบน

หมายเลขโปรเจ็กต์

โปรเจ็กต์ Firebase (และโปรเจ็กต์ Google Cloud ที่เชื่อมโยง) จะมีหมายเลขโปรเจ็กต์ ซึ่งเป็นตัวระบุหลักที่ไม่ซ้ำกันทั่วโลกซึ่ง Google กำหนดให้สำหรับโปรเจ็กต์ ใช้ตัวระบุนี้เมื่อกำหนดค่าการผสานรวมและ/หรือการเรียก API ใน Firebase, Google หรือบริการของบุคคลที่สาม

คุณแก้ไขหมายเลขโปรเจ็กต์ไม่ได้ หากคุณลบโปรเจ็กต์ ระบบจะลบหมายเลขโปรเจ็กต์ด้วยและโปรเจ็กต์อื่นจะใช้หมายเลขดังกล่าวไม่ได้อีก

รหัสโปรเจ็กต์

โปรเจ็กต์ Firebase (และโปรเจ็กต์ Google Cloud ที่เชื่อมโยง) มีรหัสโปรเจ็กต์ ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันซึ่งผู้ใช้กําหนดให้กับโปรเจ็กต์ใน Firebase และ Google Cloud ทั้งหมด เมื่อคุณสร้างโปรเจ็กต์ Firebase ทาง Firebase จะกําหนดรหัสที่ไม่ซ้ำให้กับโปรเจ็กต์โดยอัตโนมัติ แต่คุณสามารถแก้ไขรหัสดังกล่าวได้ในระหว่างการตั้งค่าโปรเจ็กต์ โดยปกติแล้วตัวระบุนี้ควรเป็นชื่อแทนที่จดจำง่ายสำหรับใช้อ้างอิงถึงโปรเจ็กต์

ไฟล์และออบเจ็กต์การกําหนดค่า Firebase

เมื่อลงทะเบียนแอปกับโปรเจ็กต์ Firebase Firebaseคอนโซลจะให้ไฟล์กําหนดค่า Firebase (แอป Apple/Android) หรือออบเจ็กต์การกําหนดค่า (เว็บแอป) ที่คุณเพิ่มลงในไดเรกทอรีแอปในเครื่องโดยตรง

  • สําหรับแอป Apple คุณต้องเพิ่มไฟล์การกําหนดค่า GoogleService-Info.plist
  • สําหรับแอป Android ให้เพิ่มไฟล์การกําหนดค่า google-services.json
  • สําหรับเว็บแอป คุณต้องเพิ่มออบเจ็กต์การกําหนดค่า Firebase

คุณรับไฟล์หรือออบเจ็กต์การกําหนดค่า Firebase ของแอปได้ทุกเมื่อ

ไฟล์หรือออบเจ็กต์การกําหนดค่า Firebase จะเชื่อมโยงแอปกับโปรเจ็กต์ Firebase ที่เฉพาะเจาะจงและทรัพยากรของโปรเจ็กต์ (ฐานข้อมูลที่เก็บข้อมูล ฯลฯ) การกําหนดค่าประกอบด้วย "ตัวเลือก Firebase" ซึ่งเป็นพารามิเตอร์ที่จําเป็นสําหรับบริการ Firebase และ Google เพื่อสื่อสารกับ Firebase Server API และเชื่อมโยงข้อมูลไคลเอ็นต์กับโปรเจ็กต์ Firebase และแอป Firebase "ตัวเลือก Firebase" ที่จําเป็นขั้นต่ำมีดังนี้

  • คีย์ API: สตริงที่เข้ารหัสอย่างง่ายที่ใช้เมื่อเรียกใช้ API บางรายการที่ไม่จําเป็นต้องเข้าถึงข้อมูลส่วนตัวของผู้ใช้ (ค่าตัวอย่าง: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO)

  • รหัสโปรเจ็กต์: ตัวระบุที่ไม่ซ้ำกันซึ่งผู้ใช้กําหนดให้กับโปรเจ็กต์ใน Firebase และ Google Cloud ทั้งหมด ตัวระบุนี้อาจปรากฏใน URL หรือชื่อของทรัพยากร Firebase บางรายการ แต่โดยปกติแล้วตัวระบุดังกล่าวควรเป็นชื่อแทนที่จดจำง่ายสำหรับใช้อ้างอิงถึงโปรเจ็กต์ (ค่าตัวอย่าง: myapp-project-123)

  • รหัสแอปพลิเคชัน ("AppID"): ตัวระบุที่ไม่ซ้ำกันสำหรับแอป Firebase ทั่วทั้ง Firebase โดยมีรูปแบบเฉพาะแพลตฟอร์มดังนี้

    • แอป Firebase สำหรับ Apple: GOOGLE_APP_ID (ค่าตัวอย่าง: 1:1234567890:ios:321abc456def7890)
      ไม่ใช่รหัสกลุ่มแอป Apple
    • แอป Android ใน Firebase: mobilesdk_app_id (ค่าตัวอย่าง: 1:1234567890:android:321abc456def7890)
      ค่านี้ไม่ใช่ชื่อแพ็กเกจ Android หรือรหัสแอปพลิเคชัน Android
    • เว็บแอป Firebase: appId (ค่าตัวอย่าง: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

เนื้อหาของไฟล์หรือออบเจ็กต์การกําหนดค่า Firebase จะถือว่าเป็นแบบสาธารณะ ซึ่งรวมถึงรหัสเฉพาะแพลตฟอร์มของแอป (รหัส App Bundle ของ Apple หรือชื่อแพ็กเกจ Android) และค่าเฉพาะโปรเจ็กต์ Firebase เช่น คีย์ API, รหัสโปรเจ็กต์, Realtime Database URL และชื่อที่เก็บข้อมูล Cloud Storage ด้วยเหตุนี้ เราจึงขอแนะนำให้ใช้ Firebase Security Rules เพื่อปกป้องข้อมูลและไฟล์ใน Realtime Database, Cloud Firestore และ Cloud Storage

สำหรับโปรเจ็กต์โอเพนซอร์ส โดยทั่วไปเราไม่แนะนำให้รวมไฟล์หรือออบเจ็กต์การกําหนดค่า Firebase ของแอปไว้ในระบบควบคุมแหล่งที่มา เนื่องจากในกรณีส่วนใหญ่ผู้ใช้ควรสร้างโปรเจ็กต์ Firebase ของตนเองและชี้แอปไปยังทรัพยากร Firebase ของตนเอง (ผ่านไฟล์หรือออบเจ็กต์การกําหนดค่า Firebase ของตนเอง)

ขีดจํากัดทั่วไปสําหรับโปรเจ็กต์ แอป และเว็บไซต์ Firebase

ขีดจํากัดทั่วไปสําหรับโปรเจ็กต์ แอป และเว็บไซต์ Firebase มีดังนี้

  • จํานวนโปรเจ็กต์ต่อบัญชี

    • แพ็กเกจราคา Spark — โควต้าการสร้างโปรเจ็กต์จํากัดอยู่ที่จํานวนโปรเจ็กต์ที่น้อยกว่า (โดยปกติประมาณ 5-10 รายการ)
    • แพ็กเกจราคา Blaze — โควต้าการสร้างโปรเจ็กต์ต่อบัญชีจะเพิ่มขึ้นอย่างมาก ตราบใดที่บัญชี Cloud Billing ที่เชื่อมโยงอยู่ในสถานะดี

    นักพัฒนาแอปส่วนใหญ่ไม่ค่อยกังวลเกี่ยวกับขีดจำกัดของโควต้าการสร้างโปรเจ็กต์ แต่หากจำเป็น คุณสามารถขอเพิ่มโควต้าโปรเจ็กต์ได้

    โปรดทราบว่าการลบโปรเจ็กต์อย่างสมบูรณ์จะใช้เวลา 30 วันและจะนับรวมในโควต้าโปรเจ็กต์จนกว่าโปรเจ็กต์จะถูกลบอย่างสมบูรณ์

  • จํานวนแอปต่อโปรเจ็กต์

    Firebase จำกัดจำนวนแอป Firebase ทั้งหมดภายในโปรเจ็กต์ Firebase ไว้ที่ 30 แอป

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

    ดูข้อมูลเพิ่มเติมเกี่ยวกับขีดจํากัดแอปต่อโปรเจ็กต์ในคําถามที่พบบ่อย

  • จํานวนเว็บไซต์ Hosting ต่อโปรเจ็กต์

    Firebase Hostingฟีเจอร์หลายเว็บไซต์รองรับเว็บไซต์ได้สูงสุด 36 เว็บไซต์ต่อโปรเจ็กต์

การเปิดตัวแอป