Nếu bạn chưa làm như vậy, thêm Firebase vào dự án Android của bạn.
Tạo Cơ sở dữ liệu
Chuyển đến phần Realtime Database của Firebase bảng điều khiển. 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.
Chọn chế độ khởi động cho Firebase Security Rules của bạn:
- Chế độ thử nghiệm
Phù hợp để bắt đầu sử dụng thư viện ứng dụng khách trên web và trên điện thoại 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 hãy nhớ xem bài viết Tìm hiểu các quy tắc về cơ sở dữ liệu theo thời gian thực của Firebase .
Để bắt đầu sử dụng web, Apple hoặc SDK Android, hãy chọn chế độ thử nghiệm.
- Chế độ khoá
Từ chối mọi lượt đọc và ghi từ ứng dụng di động và web. Máy chủ ứng dụng đã xác thực vẫn có thể truy cập cơ sở dữ liệu của bạn.
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ẽ ở một trong các dạng sau:
(cho cơ sở dữ liệu trongDATABASE_NAME.firebaseio.com
us-central1
) (đối với cơ sở dữ liệu ở tất cả các vị trí khác)DATABASE_NAME.REGION.firebasedatabase.app
Nhấp vào Xong.
Khi bạn bật Realtime Database, thao tác này cũng sẽ bật API trong Trình quản lý API Cloud.
Thêm SDK Realtime Database 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
),
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:33.1.2")) // 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") }
Khi 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 trên Firebase.
(Phương án thay thế) Thêm các 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ụ thuộc.
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ự bạn nên sử dụng BoM để quản lý các phiên bản thư viện. Việc này đả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:21.0.0") }
Định cấu hình Realtime Database Security Rules
Realtime Database cung cấp 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 cấu trúc dữ liệu được lập chỉ mục cũng như thời điểm dữ liệu của bạn có thể được đọc và ghi vào.
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 vị trí mà 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ả Java . Khi bạn lưu một đối tượng, phản hồi từ mọi phương thức getter sẽ được lưu dưới dạng nhà xuất bản con của vị trí này.
Đọc từ cơ sở dữ liệu
Để 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 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 trình nghe được
đính kèm và lặp lại mỗi khi dữ liệu thay đổi, kể 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 Firebase Realtime Database trong ứng dụng cùng với ProGuard, bạn cần phải
cân nhắc cách các đối tượng mô hình sẽ được chuyển đổi tuần tự và giải tuần tự sau khi
làm rối mã nguồn. Nếu bạn sử dụng DataSnapshot.getValue(Class)
hoặc
Dùng DatabaseReference.setValue(Object)
để đọc và ghi dữ liệu, bạn sẽ cần phải
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 cho 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 ra mắt ứng dụng, bạn nên xem qua danh sách kiểm tra khi phát hành để đảm bảo ứng dụng của bạn sẵn sàng hoạt động!
Hãy nhớ bật App Check để giúp đảm bảo rằng chỉ ứng dụng của bạn mới có thể truy cập vào cơ sở dữ liệu của bạn.
Các bước tiếp theo
- Tìm hiểu cách xây dựng cấu trúc dữ liệu cho Realtime Database
- Điều chỉnh quy mô dữ liệu trên nhiều thực thể cơ sở dữ liệu.
- Đọc và ghi dữ liệu.
- Xem cơ sở dữ liệu của bạn trong bảng điều khiển Firebase.