เชื่อมต่อแอพของคุณกับ Firebase
หากคุณยังไม่ได้ เพิ่ม Firebase ในโครงการ Android ของคุณ
สร้างฐานข้อมูล
ไปที่ส่วน Realtime Database ของ คอนโซล Firebase คุณจะได้รับแจ้งให้เลือกโปรเจ็กต์ Firebase ที่มีอยู่ ทำตามเวิร์กโฟลว์การสร้างฐานข้อมูล
เลือกโหมดเริ่มต้นสำหรับกฎความปลอดภัยของ Firebase:
- โหมดทดสอบ
เหมาะสำหรับการเริ่มต้นใช้งานไลบรารีของไคลเอ็นต์บนมือถือและเว็บไคลเอ็นต์ แต่ให้ทุกคนสามารถอ่านและเขียนทับข้อมูลของคุณได้ หลังจากการทดสอบ อย่าลืมอ่านส่วน ทำความเข้าใจกฎฐานข้อมูลเรียลไทม์ของ Firebase
ในการเริ่มต้นใช้งานเว็บ, Apple หรือ Android SDK ให้เลือกโหมดทดสอบ
- โหมดล็อค
ปฏิเสธการอ่านและเขียนทั้งหมดจากไคลเอนต์มือถือและเว็บ แอปพลิเคชันเซิร์ฟเวอร์ที่ผ่านการตรวจสอบสิทธิ์ของคุณยังคงสามารถเข้าถึงฐานข้อมูลของคุณได้
เลือกตำแหน่งสำหรับฐานข้อมูล
ขึ้นอยู่กับ ตำแหน่งของฐานข้อมูล URL สำหรับฐานข้อมูลใหม่จะอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้:
DATABASE_NAME .firebaseio.com
(สำหรับฐานข้อมูลในus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(สำหรับฐานข้อมูลในตำแหน่งอื่นทั้งหมด)
คลิก เสร็จสิ้น
เมื่อคุณเปิดใช้งาน Realtime Database ก็จะเปิดใช้งาน API ใน Cloud API Manager ด้วย
เพิ่ม Realtime Database SDK ให้กับแอปของคุณ
ใช้ Firebase Android BoM ประกาศการพึ่งพาสำหรับไลบรารี Realtime Database Android ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติapp/build.gradle
) Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) ประกาศการพึ่งพาไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการพึ่งพา
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการ ในแอปของคุณ เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งจะทำให้มั่นใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Declare the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database:20.0.5' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database-ktx' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) ประกาศการพึ่งพาไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการพึ่งพา
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการ ในแอปของคุณ เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งจะทำให้มั่นใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Declare the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-database-ktx:20.0.5' }
กำหนดค่ากฎฐานข้อมูลเรียลไทม์
ฐานข้อมูลเรียลไทม์มีภาษากฎการประกาศที่ช่วยให้คุณกำหนดว่าข้อมูลของคุณควรมีโครงสร้างอย่างไร ควรจัดทำดัชนีอย่างไร และเมื่อใดที่ข้อมูลของคุณสามารถอ่านและเขียนได้
เขียนไปยังฐานข้อมูลของคุณ
ดึงอินสแตนซ์ของฐานข้อมูลของคุณโดยใช้ getInstance()
และอ้างอิงตำแหน่งที่คุณต้องการเขียนถึง
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
คุณสามารถบันทึกช่วงของชนิดข้อมูลลงในฐานข้อมูลได้ด้วยวิธีนี้ ซึ่งรวมถึงอ็อบเจ็กต์ Java เมื่อคุณบันทึกวัตถุ การตอบกลับจากผู้รับใด ๆ จะถูกบันทึกเป็นลูกของตำแหน่งนี้
อ่านจากฐานข้อมูลของคุณ
หากต้องการอัปเดตข้อมูลแอปแบบเรียลไทม์ คุณควรเพิ่ม ValueEventListener
ในข้อมูลอ้างอิงที่คุณเพิ่งสร้างขึ้น
onDataChange()
ในคลาสนี้จะถูกทริกเกอร์หนึ่งครั้งเมื่อมีการแนบ Listener และอีกครั้งทุกครั้งที่ข้อมูลเปลี่ยนแปลง รวมถึงรายการย่อย
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
Kotlin+KTX
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
ทางเลือก: กำหนดค่า ProGuard
เมื่อใช้ฐานข้อมูลเรียลไทม์ของ Firebase ในแอปของคุณร่วมกับ ProGuard คุณต้องพิจารณาว่าอ็อบเจ็กต์โมเดลของคุณจะถูกจัดลำดับและดีซีเรียลไลซ์อย่างไรหลังจากสร้างความสับสน หากคุณใช้ DataSnapshot.getValue(Class)
หรือ DatabaseReference.setValue(Object)
เพื่ออ่านและเขียนข้อมูล คุณจะต้องเพิ่มกฎให้กับไฟล์ proguard-rules.pro
:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
หากต้องการความช่วยเหลือสำหรับคำถามหรือปัญหาที่เกี่ยวข้องกับ ProGuard โปรดไปที่ ฟอรัมชุมชน Guardsquare เพื่อรับความช่วยเหลือจากผู้เชี่ยวชาญ
เตรียมเปิดตัว
ก่อนเปิดตัวแอป ขอแนะนำให้ ตรวจสอบรายการตรวจสอบการเปิดตัว เพื่อให้แน่ใจว่าแอปของคุณพร้อมใช้งาน
อย่าลืมเปิดใช้งาน App Check เพื่อให้แน่ใจว่ามีเพียงแอพของคุณเท่านั้นที่สามารถเข้าถึงฐานข้อมูลของคุณได้
ขั้นตอนถัดไป
- เรียนรู้วิธี จัดโครงสร้างข้อมูล สำหรับ Realtime Database
- ปรับ ขนาดข้อมูลของคุณในหลาย ๆ อินสแตนซ์ฐานข้อมูล
- อ่านและเขียนข้อมูล
- ดูฐานข้อมูลของคุณในคอนโซล Firebase