ทำความเข้าใจโปรเจ็กต์ 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 จะเพิ่ม ป้ายกำกับ firebase:enabled ลงในโปรเจ็กต์ของคุณโดยอัตโนมัติภายในหน้า IAM และผู้ดูแลระบบ > ป้ายกำกับ ของคอนโซลGoogle Cloud ดูข้อมูลเพิ่มเติมเกี่ยวกับป้ายกำกับนี้ได้ใน คำถามที่พบบ่อย

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

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

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

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

  • สิทธิ์และบทบาท IAM สำหรับโปรเจ็กต์จะ แชร์กันระหว่าง Firebase และ Google Cloud การเข้าถึงที่สมาชิกโปรเจ็กต์ (นั่นคือ Principal) มีต่อโปรเจ็กต์ 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 หรือ FirebaseCLIสำหรับกรณีการใช้งานขั้นสูง) เมื่อตั้งค่าโปรเจ็กต์และลงทะเบียนแอป คุณต้องตัดสินใจเกี่ยวกับการจัดระเบียบและเพิ่มข้อมูลการกำหนดค่าเฉพาะของ 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

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

Firebase Management REST API

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

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

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

ทั้งหมด

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

เมื่อสร้างโปรเจ็กต์ คุณจะต้องระบุชื่อโปรเจ็กต์ ตัวระบุนี้เป็น ชื่อที่ใช้ภายในเท่านั้นสำหรับโปรเจ็กต์ใน Firebaseคอนโซลของ Google Cloudคอนโซลและ FirebaseCLI ชื่อโปรเจ็กต์จะไม่แสดงในผลิตภัณฑ์ บริการ หรือทรัพยากร 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
    • แอป Firebase Android: mobilesdk_app_id (ค่าตัวอย่าง: 1:1234567890:android:321abc456def7890)
      ซึ่ง ไม่ใช่ชื่อแพ็กเกจ Android หรือรหัสแอปพลิเคชัน Android
    • เว็บแอป Firebase: appId (ค่าตัวอย่าง: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

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

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

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

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

  • จำนวนโปรเจ็กต์ต่อบัญชี Google (อีเมล)

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

    โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับขีดจำกัดของโควต้าการสร้างโปรเจ็กต์

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

    ดูข้อมูลเกี่ยวกับแนวทางปฏิบัติแนะนำทั่วไปที่ Firebase แนะนำสำหรับการตั้งค่าโปรเจ็กต์ Firebase

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

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

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

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

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

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

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