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

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

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

  1. Điều hướng đến phần Cơ sở dữ liệu thời gian thực của bảng điều khiển Firebase . Bạn sẽ được nhắc chọn dự án Firebase hiện có. Thực hiện 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ê độ kiểm tra

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

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

    Chế độ khóa

    Từ chối tất cả các hoạt động đọc và ghi từ máy khách trên thiết bị di động và web. Máy chủ ứng dụng đã được xác thực của bạn vẫn có thể truy cập cơ sở dữ liệu của bạn.

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

    Tùy 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 (dành cho cơ sở dữ liệu trong us-central1 )

    • DATABASE_NAME . REGION .firebasedatabase.app (dành cho 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 Cơ sở dữ liệu thời gian thực, nó cũng kích hoạt API trong Trình quản lý API đám mây .

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

Trong tệp Gradle mô-đun (cấp ứng dụng) của bạn (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 Cơ sở dữ liệu thời gian thực thư viện dành cho Android. Chúng tôi khuyên bạn nên sử dụng BoM Android của Firebase để 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:32.8.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 các phiên bản tương thích của thư viện Android Firebase.

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

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

Lưu ý rằng nếu bạn sử dụng nhiều thư viện Firebase trong ứng dụng của mình, chúng tôi thực sự khuyên 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:20.3.1")
}
Bạn đang tìm mô-đun thư viện dành riêng cho Kotlin? Bắt đầu từ tháng 10 năm 2023 (Firebase BoM 32.5.0) , cả nhà phát triển Kotlin và Java đều có thể phụ thuộc vào mô-đun thư viện chính (để biết chi tiết, hãy xem 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 cơ sở dữ liệu thời gian thực

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

Viết vào cơ sở dữ liệu của bạn

Truy xuất một phiên bản cơ sở dữ liệu của bạn bằng cách sử dụng getInstance() và tham chiếu vị trí bạn muốn ghi 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 loại 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, phản hồi từ bất kỳ getters nào sẽ được lưu dưới dạng đối tượng 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 của bạn theo thời gian thực, bạn nên thêm ValueEventListener vào tham chiếu bạn vừa tạo.

Phương thức onDataChange() trong lớp này được kích hoạt một lần khi người nghe được đính kèm và kích hoạt lại mỗi khi dữ liệu thay đổi, bao gồm cả dữ liệu 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());
    }
});

Tùy chọn: Định cấu hình ProGuard

Khi sử dụng Cơ sở dữ liệu thời gian thực Firebase trong ứng dụng của bạn cùng với ProGuard, bạn cần xem xét cách các đối tượng mô hình của bạn sẽ được tuần tự hóa và giải tuần tự hóa sau khi làm rối mã nguồn. Nếu bạn sử dụng DataSnapshot.getValue(Class) hoặc DatabaseReference.setValue(Object) để đọc và ghi dữ liệu, bạn sẽ 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.** {
      *;
    }

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

Chuẩn bị ra mắt

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

Hãy nhớ bật Kiểm tra ứng dụng để giúp đảm bảo rằng chỉ ứng dụng của bạn mới có thể truy cập cơ sở dữ liệu của bạn.

Bước tiếp theo