หากคุณยังไม่ได้ ดำเนินการ ให้เพิ่ม Firebase ในโครงการ Android ของคุณ
สร้างฐานข้อมูล
ไปที่ส่วน ฐานข้อมูลเรียลไทม์ ของ คอนโซล 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 ลงในแอปของคุณ
ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ<project>/<app-module>/build.gradle.kts
หรือ <project>/<app-module>/build.gradle
) ให้เพิ่มการพึ่งพาสำหรับฐานข้อมูลเรียลไทม์ ห้องสมุด Android ขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add 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 { // Add 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.2.2") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add 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 { // Add 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.2.2") }
กำหนดค่ากฎความปลอดภัยของฐานข้อมูลแบบเรียลไทม์
ฐานข้อมูลเรียลไทม์จัดเตรียมภาษาของกฎการประกาศที่ให้คุณกำหนดว่าข้อมูลของคุณควรมีโครงสร้างอย่างไร ควรจัดทำดัชนีอย่างไร และเมื่อใดที่สามารถอ่านและเขียนข้อมูลของคุณได้
เขียนไปยังฐานข้อมูลของคุณ
ดึงอินสแตนซ์ของฐานข้อมูลของคุณโดยใช้ getInstance()
และอ้างอิงตำแหน่งที่คุณต้องการเขียนถึง
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
คุณสามารถบันทึกช่วงของประเภทข้อมูลลงในฐานข้อมูลได้ด้วยวิธีนี้ รวมถึงออบเจกต์ Java เมื่อคุณบันทึกวัตถุ การตอบสนองจาก getters ใดๆ จะถูกบันทึกเป็นรายการย่อยของตำแหน่งนี้
อ่านจากฐานข้อมูลของคุณ
หากต้องการอัปเดตข้อมูลแอปแบบเรียลไทม์ คุณควรเพิ่ม ValueEventListener
ให้กับข้อมูลอ้างอิงที่คุณเพิ่งสร้างขึ้น
เมธอด onDataChange()
ในคลาสนี้ถูกเรียกใช้หนึ่งครั้งเมื่อแนบ Listener และอีกครั้งทุกครั้งที่ข้อมูลเปลี่ยนแปลง รวมถึงรายการย่อยด้วย
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()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull 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(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
ทางเลือก: กำหนดค่า ProGuard
เมื่อใช้ Firebase Realtime Database ในแอปของคุณร่วมกับ 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 เพื่อขอความช่วยเหลือจากผู้เชี่ยวชาญ
เตรียมพร้อมสำหรับการเปิดตัว
ก่อนเปิดตัวแอป เราขอแนะนำให้คุณตรวจสอบ รายการตรวจสอบการเปิดตัว ของเราเพื่อให้แน่ใจว่าแอปของคุณพร้อมใช้งาน!
อย่าลืมเปิดใช้งาน การตรวจสอบแอป เพื่อช่วยให้แน่ใจว่าเฉพาะแอปของคุณเท่านั้นที่สามารถเข้าถึงฐานข้อมูลของคุณได้
ขั้นตอนถัดไป
- เรียนรู้วิธี จัดโครงสร้างข้อมูล สำหรับ Realtime Database
- ปรับขนาดข้อมูลของคุณในหลายอินสแตนซ์ของฐานข้อมูล
- อ่านและเขียนข้อมูล
- ดูฐานข้อมูลของคุณในคอนโซล Firebase