Cài đặt & Thiết lập trên Android

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

Nếu bạn chưa sẵn sàng, thêm căn cứ hỏa lực cho 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 các căn cứ hỏa lực console . Bạn sẽ được nhắc chọn một 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

    Tốt để bắt đầu với thư viện ứng dụng khách di động và web, nhưng cho phép bất kỳ ai đọc và ghi đè dữ liệu của bạn. Sau khi thử nghiệm, hãy chắc chắn để xem xét Hiểu căn cứ hỏa lực Realtime Nội quy Cơ sở dữ liệu phần.

    Để bắt đầu với web, iOS hoặc Android SDK, hãy chọn chế độ thử nghiệm.

    Chế độ bị khóa

    Phụ thuộc tất cả các lần đọc và ghi từ các ứng dụng di động và web. Các máy chủ ứng dụng đã được xác thực của bạn vẫn có thể truy cập vào cơ sở dữ liệu của bạn.

  3. Chọn một khu vực cho cơ sở dữ liệu. Tùy thuộc vào sự lựa chọn của bạn trong khu vực, không gian tên cơ sở dữ liệu sẽ có dạng <databaseName>.firebaseio.com hoặc <databaseName>.<region>.firebasedatabase.app . Để biết thêm thông tin, xem chọn địa điểm cho dự án của bạn .

  4. Nhấn Done.

Khi bạn kích hoạt cơ sở dữ liệu thời gian thực, nó cũng cho phép các API trong API quản lý đá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

Sử dụng các căn cứ hỏa lực Android HĐQT , kê khai phụ thuộc cho cơ sở dữ liệu Realtime thư viện Android trong module của bạn (ứng dụng cấp) tập tin Gradle (thường là app/build.gradle ).

Java

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

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

Bằng việc sử dụng căn cứ hỏa lực Android HĐQT , ứng dụng của bạn sẽ luôn luôn sử dụng các phiên bản tương thích của các thư viện căn cứ hỏa lực Android.

(Alternative) Khai báo căn cứ hỏa lực phụ thuộc thư viện mà không sử dụng HĐQT

Nếu bạn 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ụ thuộc của nó.

Lưu ý rằng nếu bạn sử dụng nhiều thư viện căn cứ hỏa lực trong ứng dụng của bạn, chúng tôi khuyên bạn nên sử dụng HĐQT để quản lý các phiên bản thư viện, đảm bảo rằng tất cả các phiên bản tương thích.

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'
}

Kotlin + KTX

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

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

Bằng việc sử dụng căn cứ hỏa lực Android HĐQT , ứng dụng của bạn sẽ luôn luôn sử dụng các phiên bản tương thích của các thư viện căn cứ hỏa lực Android.

(Alternative) Khai báo căn cứ hỏa lực phụ thuộc thư viện mà không sử dụng HĐQT

Nếu bạn 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ụ thuộc của nó.

Lưu ý rằng nếu bạn sử dụng nhiều thư viện căn cứ hỏa lực trong ứng dụng của bạn, chúng tôi khuyên bạn nên sử dụng HĐQT để quản lý các phiên bản thư viện, đảm bảo rằng tất cả các phiên bản tương thích.

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'
}

Định cấu hình quy tắc 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 dữ liệu của bạn nên được cấu trúc, cách nó được lập chỉ mục và khi nào dữ liệu của bạn có thể được đọc và ghi vào.

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

Lấy một thể hiện của cơ sở dữ liệu bằng cách sử dụng getInstance() và tham khảo các vị trí bạn muốn ghi vào.

Java

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

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

Kotlin + KTX

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

myRef.setValue("Hello, World!")

Bạn có thể lưu một loạt các 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ỳ getters nào sẽ được lưu dưới dạng phần tử con của vị trí này.

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

Để thực hiện cập nhật dữ liệu ứng dụng của bạn trong thời gian thực, bạn nên thêm một ValueEventListener tài liệu tham khảo mà bạn vừa tạo.

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

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

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

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

Khi sử dụng Cơ sở dữ liệu thời gian thực của 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 mã sau khi giải mã. 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 phải thêm các quy tắc cho proguard-rules.pro file:

    # 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ó được sự giúp đỡ cho các câu hỏi hoặc các vấn đề liên quan đến ProGuard, hãy truy cập diễn đàn Guardsquare cộng đồng để có được sự hỗ trợ từ một chuyên gia.

Chuẩn bị cho việc ra mắt

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

Hãy chắc chắn để cho phép ứng dụng kiểm tra để giúp đảm bảo rằng chỉ các ứng dụng của bạn có thể truy cập vào cơ sở dữ liệu của bạn.

Bước tiếp theo