หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

การติดตั้งและการตั้งค่าบน Android

เชื่อมต่อแอปของคุณกับ Firebase

เพิ่ม Firebase ในโปรเจ็กต์ Android ของคุณ หากยังไม่ได้ ทำ

สร้างฐานข้อมูล

  1. ไปที่ส่วน ฐานข้อมูลแบบเรียลไทม์ ของ คอนโซล Firebase คุณจะได้รับแจ้งให้เลือกโครงการ Firebase ที่มีอยู่ ทำตามขั้นตอนการสร้างฐานข้อมูล

  2. เลือกโหมดเริ่มต้นสำหรับกฎความปลอดภัย Firebase ของคุณ:

    โหมดทดสอบ

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

    ในการเริ่มต้นกับเว็บ iOS หรือ Android SDK ให้เลือกโหมดทดสอบ

    โหมดล็อค

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

  3. เลือกภูมิภาคสำหรับฐานข้อมูล ขึ้นอยู่กับภูมิภาคที่คุณเลือกเนมสเปซฐานข้อมูลจะอยู่ในรูปแบบ <databaseName>.firebaseio.com หรือ <databaseName>.<region>.firebasedatabase.app สำหรับข้อมูลเพิ่มเติมโปรดดูที่ เลือกสถานที่สำหรับโครงการของคุณ

  4. คลิก เสร็จสิ้น

เมื่อคุณเปิดใช้ฐานข้อมูลแบบเรียลไทม์จะเป็นการเปิดใช้ 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:26.6.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:19.6.0'
}

โคตรลิน + KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:26.6.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:19.6.0'
}

กำหนดค่ากฎฐานข้อมูลแบบเรียลไทม์

ฐานข้อมูลแบบเรียลไทม์มีภาษากฎที่เปิดเผยซึ่งช่วยให้คุณสามารถกำหนดว่าข้อมูลของคุณควรมีโครงสร้างอย่างไรควรจัดทำดัชนีอย่างไรและเมื่อใดที่ข้อมูลของคุณสามารถอ่านและเขียนถึงได้

เขียนลงในฐานข้อมูลของคุณ

ดึงข้อมูลอินสแตนซ์ของฐานข้อมูลของคุณโดยใช้ getInstance() และอ้างอิงตำแหน่งที่คุณต้องการเขียน

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

โคตรลิน + KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

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

อ่านจากฐานข้อมูลของคุณ

หากต้องการอัปเดตข้อมูลแอปแบบเรียลไทม์คุณควรเพิ่ม 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());
    }
});

โคตรลิน + 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 คุณต้องพิจารณาว่าออบเจ็กต์แบบจำลองของคุณจะถูกทำให้เป็นซีเรียลไลซ์และ deserialized อย่างไรหลังจากการทำให้ยุ่งเหยิง หากคุณใช้ 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 Community เพื่อขอความช่วยเหลือจากผู้เชี่ยวชาญ

เตรียมพร้อมสำหรับการเปิดตัว

ก่อนเปิดตัวแอปขอแนะนำให้ทำตาม รายการตรวจสอบการเปิดตัว เพื่อให้แน่ใจว่าแอปของคุณพร้อมใช้งานแล้ว!

ขั้นตอนถัดไป