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

Thêm Firebase vào dự án Android của bạn nếu bạn chưa thực hiện.

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

  1. Chuyển đến phần Cơ sở dữ liệu theo thời gian thực trong bảng điều khiển của 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ế độ bắt đầu cho Quy tắc bảo mật Firebase của bạn:

    Chế độ thử nghiệm

    Phù hợp để bắt đầu sử dụng thư viện ứng dụng dành cho thiết bị di động và 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 Quy tắc cơ sở dữ liệu theo thời gian thực của Firebase.

    Để bắt đầu sử dụng web, Apple hoặc Android SDK, hãy chọn testmode.

    Chế độ khoá

    Từ chối tất cả hoạt động đọc và ghi từ ứng dụng di động và web. Các máy chủ ứng dụng đã được 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 của 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 ở mọi vị trí khác)

  4. Nhấp vào Xong.

Khi bạn bật Cơ sở dữ liệu theo thời gian thực, API này cũng sẽ được bật trong Trình quản lý API Cloud.

Thêm SDK cơ sở dữ liệu theo thời gian thực vào ứng dụng

Trong tệp Gradle mô-đun (cấp ứng dụng) (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 Cơ sở dữ liệu theo thời gian thực 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:33.1.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")
}

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

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

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

Xin lưu ý rằng nếu sử dụng nhiều thư viện Firebase trong ứng dụng của mình, 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 mọi 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:21.0.0")
}
Bạn đang tìm một mô-đun thư viện dành riêng cho Kotlin? Kể từ tháng 10 năm 2023 (Firebase BoM 32.5.0), cả nhà phát triển Kotlin và Java đều có thể sử dụng mô-đun thư viện chính (để biết thông tin chi tiết, hãy xem phần Câu hỏi thường gặp về sáng kiến này).

Định cấu hình Quy tắc bảo mật cho cơ sở dữ liệu theo thời gian thực

Cơ sở dữ liệu theo thời gian thực cung cấp một ngôn ngữ quy tắc khai báo cho phép bạn xác định cấu trúc dữ liệu, cách lập chỉ mục dữ liệu và thời điểm có thể đọc và ghi dữ liệu.

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 dữ liệu vào.

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

Bạn có thể lưu nhiều kiểu dữ liệu vào cơ sở dữ liệu theo cách này, 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ừ bất kỳ phương thức getter nào cũng sẽ được lưu làm phần tử con của vị trí này.

Đọc từ cơ sở dữ liệu của bạn

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

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

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

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

Khi sử dụng Cơ sở dữ liệu theo thời gian thực của Firebase trong ứng dụng cùng với ProGuard, bạn cần xem xét cách chuyển đổi tuần tự và giải tuần tự các đối tượng mô hình sau khi 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 cần thêm 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ị ra mắt

Trước khi phát hành ứng dụng, bạn nên xem qua danh sách kiểm tra trước khi phát hành để đảm bảo ứng dụng đã sẵn sàng!

Hãy nhớ bật tính năng Kiểm tra ứng dụng để đảm bảo chỉ các ứ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