ทำความเข้าใจ Firebase สำหรับ Android

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

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

ปลั๊กอิน Firebase Assistant สำหรับ Android Studio

Firebase Assistant คือปลั๊กอิน Android Studio ที่ลงทะเบียนแอป Android ของคุณกับโปรเจ็กต์ Firebase และเพิ่มไฟล์การกำหนดค่า ปลั๊กอิน และทรัพยากร Dependency ของ Firebase ที่จำเป็นลงในโปรเจ็กต์ Android ทั้งหมดนี้ทำได้ใน Android Studio!

ทำตามวิธีการในหน้าเริ่มต้นใช้งาน Android เพื่อใช้ Firebase Assistant ตรวจสอบว่าคุณใช้ทั้ง Android Studio และ Firebase Assistant เวอร์ชันล่าสุด (ไปที่ไฟล์ > ตรวจหาอัปเดต)

เมื่อคุณเลือกผลิตภัณฑ์ Firebase ที่ต้องการเพิ่มลงในแอป Assistant ของ Firebase จะประกาศทรัพยากร Dependency ที่จำเป็นในไฟล์ app/build.gradle โดยอัตโนมัติ อย่างไรก็ตาม หากต้องการใช้ฟีเจอร์ Firebase ที่อยู่นอกเหนือความสามารถในปัจจุบันของ Firebase Assistant คุณอาจต้องเปลี่ยนทรัพยากร Dependency เหล่านี้ด้วยตนเอง

  • หากต้องการใช้ Firebase Android BoM ให้อัปเดตทรัพยากร Dependency ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น app/build.gradle) เพื่อนำเข้าแพลตฟอร์ม BoM นอกจากนี้คุณจะต้องนำเวอร์ชันออกจากบรรทัด ทรัพยากร Dependency ของไลบรารี Firebase แต่ละบรรทัดด้วย

  • หากต้องการใช้ไลบรารีส่วนขยาย Kotlin ให้แก้ไขบรรทัดทรัพยากร Dependency ที่เพิ่มลงในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle) เพื่อใช้ไลบรารี Firebase เวอร์ชัน ktx แทน

บริการของ Google — ปลั๊กอินและไฟล์การกำหนดค่า

หากต้องการเพิ่ม Firebase ในโปรเจ็กต์ Android คุณต้องเพิ่มปลั๊กอิน google-services และไฟล์การกำหนดค่า google-services.json ลงในโปรเจ็กต์

หากเพิ่ม Firebase ในโปรเจ็กต์ Android ผ่านคอนโซล Firebase, Management REST API หรือ Firebase CLI คุณต้องเพิ่มปลั๊กอินและไฟล์การกำหนดค่าลงในโปรเจ็กต์ด้วยตนเอง แต่หากคุณใช้ Firebase Assistant ระบบจะทำงานเหล่านี้ให้โดยอัตโนมัติระหว่างการตั้งค่า

โปรดไปที่เอกสารประกอบของ Android เพื่อดูวิธีการทำงานร่วมกันของปลั๊กอินบริการของ Google และไฟล์การกำหนดค่า

BoM ของ Firebase Android (Bill of Materials)

Firebase Android BoM (Bill of Materials) ทำให้คุณสามารถจัดการไลบรารี Firebase ทุกเวอร์ชันด้วยการระบุเพียงเวอร์ชันเดียว ซึ่งก็คือเวอร์ชันของ BoM

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

ในการดูว่าไลบรารี Firebase เวอร์ชันใดแมปกับ BoM เวอร์ชันใดเวอร์ชันหนึ่ง ให้ดูที่บันทึกประจำรุ่นสำหรับ BoM เวอร์ชันนั้น หากต้องการเปรียบเทียบเวอร์ชันไลบรารีที่แมปกับเวอร์ชัน BoM หนึ่งกับเวอร์ชัน BoM อื่น ให้ใช้วิดเจ็ตการเปรียบเทียบด้านล่าง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับแพลตฟอร์ม BoM ของ Gradle

ต่อไปนี้เป็นวิธีใช้ Firebase Android BoM เพื่อประกาศทรัพยากร Dependency ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น app/build.gradle) เมื่อใช้ BoM คุณไม่ต้องระบุเวอร์ชันไลบรารีแต่ละเวอร์ชันในบรรทัดทรัพยากร Dependency

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:32.8.1')

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

ต่อไปนี้คือคำถามที่พบบ่อยเกี่ยวกับการใช้ Firebase Android BoM

เปรียบเทียบเวอร์ชัน Firebase BoM

โมดูลไลบรารีส่วนขยายของ Kotlin (KTX)

โมดูลไลบรารีส่วนขยาย Kotlin ของ Firebase (KTX) เป็นโมดูลไลบรารีที่ใช้ร่วมกันขนาดเล็กของ Firebase ทำให้คุณนำไปใช้ในการเขียนโค้ด Kotlin ที่สวยงามและมีความหมายได้

หากต้องการใช้โมดูลคลัง KTX ในแอป ให้เปลี่ยนทรัพยากร Dependency ให้รวมคำต่อท้าย -ktx โมดูล KTX แต่ละรายการจะขึ้นอยู่กับโมดูลไลบรารีหลักโดยอัตโนมัติ คุณจึงไม่จำเป็นต้องรวมทรัพยากร Dependency ทั้ง 2 รายการในแอป

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:32.8.1')

  // Declare the main module
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX module instead (which automatically has a dependency on the main module)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

โมดูล KTX แต่ละรายการจะมีส่วนขยายไวยากรณ์ที่แตกต่างกันของโมดูลหลัก ตัวอย่างเช่น โมดูล Analytics KTX ช่วยให้บันทึกเหตุการณ์ง่ายขึ้น

ก่อน (การใช้โมดูลหลัก)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

หลัง (ใช้โมดูล KTX แทน)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

ผลิตภัณฑ์ Firebase ทั้งหมดมีโมดูล KTX ยกเว้น Firebase ML และการจัดทำดัชนีแอป

หากยังไม่ได้อ่าน โปรดดูเอกสารอ้างอิง API สำหรับโมดูล KTX

โมดูลฟีเจอร์และการนำส่งฟีเจอร์ Play

ตั้งแต่เดือนพฤษภาคม 2021 (Firebase BoM v28.0.0) Firebase Android SDK จะใช้ได้ในโมดูลฟีเจอร์แบบไดนามิกซึ่งติดตั้งแยกจากโมดูลแอปพลิเคชันพื้นฐาน

หากต้องการเปิดใช้การรองรับโมดูลฟีเจอร์แบบไดนามิก ให้เพิ่มทรัพยากร Dependency ต่อไปนี้ในไฟล์ build.gradle ของโมดูล base ดังกล่าว

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

เมื่อคุณเพิ่มการรองรับโมดูลแบบไดนามิกแล้ว คุณสามารถเพิ่มการขึ้นต่อกันของ Firebase SDK (มีหรือไม่มี Firebase BoM) เพื่อแสดงโมดูลของแอปและนำไปใช้ได้ตามปกติ

เช่น หากแอปพลิเคชันใช้ Realtime Database เพื่อขับเคลื่อนฟีเจอร์แบบเรียลไทม์ที่เฉพาะเจาะจง คุณอาจเพิ่มทรัพยากร Dependency firebase-database ไปยัง build.gradle ของโมดูลฟีเจอร์แทนโมดูลฐานได้ วิธีนี้จะลดขนาดการดาวน์โหลด สำหรับผู้ใช้ส่วนใหญ่

โปรดคําเตือนต่อไปนี้เมื่อใช้ Firebase SDK ในโมดูลฟีเจอร์

  • ผลิตภัณฑ์ เช่น ลิงก์แบบไดนามิกหรือการรับส่งข้อความในแอปของ Firebase ที่อาศัยเหตุการณ์ first_open ของ Analytics อาจพลาดเหตุการณ์นี้เมื่อใช้ในโมดูลฟีเจอร์แบบไดนามิก

  • เมื่อใช้ Cloud Firestore และการตรวจสอบสิทธิ์ร่วมกัน คุณควรรวมทั้ง 2 รายการไว้ในโมดูลเดียวกันเสมอ หากทำไม่ได้ ให้ตรวจสอบว่าโหลดการตรวจสอบสิทธิ์ก่อน Cloud Firestore แล้ว มิเช่นนั้น การดำเนินการใน Cloud Firestore บางรายการอาจมีสถานะการตรวจสอบสิทธิ์ที่ไม่ถูกต้อง

  • เมื่อใช้ firebase-crashlytics-ndk เป็นทรัพยากร Dependency ของโมดูลฟีเจอร์แบบไดนามิก คุณต้องตั้งค่าพร็อพเพอร์ตี้ unstrippedNativeLibsDir ในไฟล์ build.gradle ของแอป ตามที่อธิบายไว้ในเอกสารประกอบ NDK ของ Crashlytics

ดูข้อมูลเพิ่มเติมเกี่ยวกับโมดูลฟีเจอร์และการนำส่งฟีเจอร์ Play ได้ที่ภาพรวมของการนำส่งฟีเจอร์ Play

ปลั๊กอิน Gradle ของบริการ Google เทียบกับบริการ Google Play เทียบกับ Google Play Store

ระบบนิเวศหลายส่วนของ Google, Firebase และ Android มีรูปแบบการตั้งชื่อที่คล้ายกัน ต่อไปนี้เป็นคำอธิบายโดยย่อสำหรับแต่ละรายการ

ปลั๊กอิน Gradle สำหรับบริการของ Google
ปลั๊กอิน Gradle (com.google.gms.google-services) ที่ทำงานในเวลาบิลด์เพื่อให้มั่นใจว่าแอปมีการกำหนดค่าที่ถูกต้องในการเข้าถึง Firebase และ Google API
แม้จะมีชื่อปลั๊กอินนี้แล้ว แต่ปลั๊กอินนี้จะไม่เกี่ยวกับบริการ Google Play (ดูรายการถัดไป) และไม่มีผลต่อความสามารถของแอปในช่วงรันไทม์
ปลั๊กอินนี้ยังประมวลผลไฟล์ google-services.json ที่คุณเพิ่มลงในแอปโดยเป็นส่วนหนึ่งของการตั้งค่า Firebase ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับปลั๊กอิน Gradle สำหรับบริการของ Google
บริการ Google Play
บริการในเบื้องหลังที่มองไม่เห็นซึ่งทำงานในอุปกรณ์ Android และให้ Google API ทั่วไปหลายตัว (เช่น Google Maps และ Google Sign In) แก่แอปต่างๆ ในอุปกรณ์
การรวม API ทั่วไปเหล่านี้ไว้ในบริการเดียวจะลดขนาดของแอปอื่นๆ และช่วยให้อุปกรณ์ได้รับการอัปเดตความปลอดภัยและการเพิ่มประสิทธิภาพฟีเจอร์โดยอัตโนมัติได้โดยไม่ต้องอัปเดตระบบปฏิบัติการ ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการ Google Play
Google Play Store
ร้านค้าสำหรับดาวน์โหลดแอป ภาพยนตร์ หนังสือ และอื่นๆ บนอุปกรณ์ Android
ในฐานะนักพัฒนาแอป คุณจะจัดการการจัดจำหน่าย การเผยแพร่ ฯลฯ สำหรับแอปผ่าน Google Play Console หากอุปกรณ์มี Google Play Store อุปกรณ์นั้นก็จะใช้บริการ Google Play ด้วย (ดูรายการก่อนหน้า) ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Play Store สำหรับนักพัฒนาซอฟต์แวร์
บริการเกมของ Google Play
ชุด API สำหรับนักพัฒนาเกมในอุปกรณ์เคลื่อนที่
ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการเกมของ Google Play และวิธีผสานรวม Firebase กับโปรเจ็กต์บริการเกมของ Google Play

ทรัพยากรโอเพนซอร์สสำหรับ Firebase Android SDK

Firebase สนับสนุนการพัฒนาแบบโอเพนซอร์ส และเราขอแนะนำให้ชุมชน ให้การสนับสนุนและความคิดเห็น

SDK ของ Firebase Android

Firebase Android SDK ส่วนใหญ่พัฒนาเป็นไลบรารีโอเพนซอร์สในที่เก็บ Firebase GitHub สาธารณะของเรา เรากำลังทำงานกันอย่างเต็มที่เพื่อย้ายไลบรารี Firebase ที่พัฒนาแบบส่วนตัว ที่เหลืออยู่ไปยัง GitHub สาธารณะของเราในเร็วๆ นี้

ตัวอย่างการเริ่มต้นอย่างรวดเร็ว

Firebase เก็บรักษาคอลเล็กชันตัวอย่างการเริ่มต้นใช้งานอย่างรวดเร็วสำหรับ Firebase API ส่วนใหญ่ใน Android ค้นหาการเริ่มต้นใช้งานอย่างรวดเร็วเหล่านี้ได้ในที่เก็บการเริ่มต้นอย่างรวดเร็วใน Firebase GitHub แบบสาธารณะของเรา

คุณจะเปิดการเริ่มต้นอย่างรวดเร็วแต่ละรายการเป็นโปรเจ็กต์ Android Studio แล้วเรียกใช้ในอุปกรณ์เคลื่อนที่หรืออุปกรณ์เสมือน (AVD) ได้ หรือคุณอาจใช้การเริ่มต้นอย่างรวดเร็วเหล่านี้เป็น โค้ดตัวอย่างสำหรับการใช้ Firebase SDK

หัวข้ออื่นๆ ที่น่าสนใจ