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

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

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

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

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

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

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

  • หากต้องการใช้BoM ของ Firebase Android ให้อัปเดตทรัพยากร 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)

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

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

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

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

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

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

  // 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'
}

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

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

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

โมดูลไลบรารีส่วนขยายของ Firebase Kotlin (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:33.1.2')

  // 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 ได้ ทรัพยากร Dependency (ที่มีหรือไม่มี Firebase BoM) เพื่อแสดงโมดูล และใช้งานตามปกติ

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

โปรดระวังสิ่งต่อไปนี้เมื่อใช้ Firebase SDK ในโมดูลฟีเจอร์

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

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

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

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

Android SDK ของ Firebase

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

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

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

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

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