Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

การติดตั้ง & ตั้งค่าบน Android

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

หากคุณยังไม่ได้ เพิ่ม Firebase กับโครงการ Android ของคุณ

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

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

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

    โหมดทดสอบ

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

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

    โหมดล็อค

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

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

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

เมื่อคุณเปิดใช้เรียลไทม์ฐานข้อมูลก็ยังช่วยให้ API ในที่ API จัดการระบบคลาวด์

เพิ่ม Realtime Database SDK ให้กับแอปของคุณ

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

Java

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

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

คอตลิน+KTX

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

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

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

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

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

ดึงอินสแตนซ์ของฐานข้อมูลของคุณโดยใช้ 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() วิธีการในชั้นนี้จะถูกเรียกครั้งเดียวเมื่อฟังที่แนบมาและอีกครั้งทุกครั้งที่มีการเปลี่ยนแปลงข้อมูลรวมทั้งเด็ก

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

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