Kết nối ứng dụng của bạn với Firebase

Nếu chưa thực hiện, hãy thêm Firebase vào dự án Android.

Tạo cơ sở dữ liệu

  1. Chuyển đến phần Realtime Database của bảng điều khiển Firebase. Bạn sẽ được nhắc chọn một dự án Firebase hiện có. Làm theo quy trình tạo cơ sở dữ liệu.

  2. Chọn chế độ khởi động cho Firebase Security Rules:

    Chế độ kiểm thử

    Phù hợp để bắt đầu với các thư viện ứng dụng di động và ứng dụng web, nhưng cho phép mọi người đọc và ghi đè dữ liệu của bạn. Sau khi kiểm thử, hãy nhớ xem lại phần Tìm hiểu về quy tắc của Cơ sở dữ liệu thời gian thực Firebase.

    Để bắt đầu với SDK web, Apple hoặc Android, hãy chọn testmode.

    Chế độ khoá

    Từ chối mọi hoạt động đọc và ghi từ ứng dụng di động và ứng dụng web. Các máy chủ ứng dụng đã xác thực vẫn có thể truy cập vào cơ sở dữ liệu của bạn.

  3. Chọn vị trí cho cơ sở dữ liệu.

    Tuỳ thuộc vào vị trí của cơ sở dữ liệu, URL cho cơ sở dữ liệu mới sẽ có một trong các dạng sau:

    • DATABASE_NAME.firebaseio.com (đối với cơ sở dữ liệu trong us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (đối với cơ sở dữ liệu ở tất cả các vị trí khác)

  4. Nhấp vào Xong.

Khi bạn bật Realtime Database, API này cũng sẽ được bật trong Trình quản lý API trên đám mây.

Thêm SDK Realtime Database vào ứng dụng của bạn

Trong tệp Gradle (cấp ứng dụng) của mô-đun (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc cho thư viện Realtime Database cho Android. Bạn nên sử dụng Firebase Android BoM để kiểm soát việc tạo phiên bản thư viện.

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

    // 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")
}

Bằng cách sử dụng Firebase Android BoM, ứng dụng của bạn sẽ luôn sử dụng những phiên bản tương thích của thư viện Android trên Firebase.

(Cách khác)  Thêm phần phụ thuộc của thư viện Firebase mà không sử dụng BoM

Nếu chọn không sử dụng Firebase BoM, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc của phiên bản đó.

Xin lưu ý rằng nếu sử dụng nhiều thư viện Firebase trong ứng dụng, bạn nên sử dụng BoM để quản lý các phiên bản thư viện, nhằm đảm bảo rằng tất cả các phiên bản đều tương thích.

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:22.0.0")
}

Định cấu hình Realtime Database Security Rules

Realtime Database cung cấp một ngôn ngữ quy tắc khai báo cho phép bạn xác định cách dữ liệu của bạn được cấu trúc, cách dữ liệu được lập chỉ mục và thời điểm dữ liệu có thể được đọc và ghi.

Ghi vào cơ sở dữ liệu

Truy xuất một thực thể của cơ sở dữ liệu bằng cách sử dụng getInstance() và tham chiếu đến vị trí mà bạn muốn ghi.

Kotlin

// 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!");

Bằng cách này, bạn có thể lưu nhiều loại dữ liệu vào cơ sở dữ liệu, bao gồm cả các đối tượng Java. Khi bạn lưu một đối tượng, các phản hồi từ mọi phương thức getter sẽ được lưu dưới dạng các phần tử con của vị trí này.

Đọc từ cơ sở dữ liệu

Để dữ liệu ứng dụng của bạn cập nhật theo thời gian thực, bạn nên thêm ValueEventListener vào thông tin tham chiếu mà bạn vừa tạo.

Phương thức onDataChange() trong lớp này sẽ được kích hoạt một lần khi trình nghe được đính kèm và một lần nữa mỗi khi dữ liệu thay đổi, kể cả các thành phần con.

Kotlin

// 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());
    }
});

Không bắt buộc: Định cấu hình ProGuard

Khi dùng Firebase Realtime Database trong ứng dụng cùng với ProGuard, bạn cần cân nhắc cách các đối tượng mô hình sẽ được chuyển đổi tuần tự và chuyển đổi ngược sau khi bị làm rối mã nguồn. Nếu sử dụng DataSnapshot.getValue(Class) hoặc DatabaseReference.setValue(Object) để đọc và ghi dữ liệu, bạn sẽ cần thêm các quy tắc vào tệp 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.** {
      *;
    }

Để được trợ giúp về các câu hỏi hoặc vấn đề liên quan đến ProGuard, hãy truy cập vào diễn đàn Cộng đồng Guardsquare để được chuyên gia hỗ trợ.

Chuẩn bị phát hành

Trước khi ra mắt ứng dụng, bạn nên xem qua danh sách kiểm tra trước khi ra mắt của chúng tôi để đảm bảo ứng dụng của bạn đã sẵn sàng!

Hãy nhớ bật App Check để đảm bảo chỉ ứng dụng của bạn mới có thể truy cập vào cơ sở dữ liệu.

Các bước tiếp theo