Để bắt đầu sử dụng FCM, hãy xây dựng trường hợp sử dụng đơn giản nhất: gửi một tin nhắn thông báo thử nghiệm từ Trình soạn thông báo sang thiết bị phát triển khi thiết bị chạy trong nền. Trang này liệt kê tất cả các bước để đạt được điều này, từ thiết lập đến xác minh — báo cáo có thể bao gồm các bước bạn đã hoàn tất nếu bạn đã thiết lập một ứng dụng Android với giá FCM.
Thiết lập SDK
Phần này đề cập đến những việc bạn có thể đã hoàn thành nếu bạn đã bật tính năng này các tính năng khác của Firebase cho ứng dụng của bạn.
Trước khi bắt đầu
Cài đặt hoặc cập nhật Android Studio lên phiên bản mới nhất.
Đảm bảo rằng dự án của bạn đáp ứng các yêu cầu này (lưu ý rằng một số sản phẩm có thể có yêu cầu nghiêm ngặt hơn):
- Nhắm mục tiêu API cấp 19 (KitKat) hoặc cao hơn
- Sử dụng Android 4.4 trở lên
- Công dụng
Jetpack (AndroidX),
bao gồm việc đáp ứng các yêu cầu sau đây về phiên bản:
com.android.tools.build:gradle
phiên bản 7.3.0 trở lêncompileSdkVersion
28 trở lên
Thiết lập một thiết bị thực hoặc sử dụng trình mô phỏng sang chạy ứng dụng của bạn.
Lưu ý rằng Firebase SDK có phần phụ thuộc trên Google Play các dịch vụ yêu cầu thiết bị hoặc trình mô phỏng cài đặt Dịch vụ Google Play.Đăng nhập vào Firebase bằng tài khoản Google tài khoản.
Nếu bạn chưa có dự án Android và chỉ muốn dùng thử Firebase sản phẩm, bạn có thể tải xuống một trong các mẫu bắt đầu nhanh của chúng tôi.
Tạo một dự án Firebase
Trước khi có thể thêm Firebase vào ứng dụng Android, bạn cần tạo một Firebase dự án để kết nối với ứng dụng Android của bạn. Truy cập/ghé qua Tìm hiểu về các dự án Firebase để tìm hiểu thêm Dự án Firebase.
Đăng ký ứng dụng của bạn với Firebase
Để sử dụng Firebase trong ứng dụng Android, bạn cần đăng ký ứng dụng của mình với Dự án Firebase. Việc đăng ký ứng dụng của bạn thường được gọi là "thêm" ứng dụng của bạn đến dự án.
Chuyển đến bảng điều khiển của Firebase.
Ở giữa trang tổng quan về dự án, hãy nhấp vào biểu tượng Android (
) hoặc Thêm ứng dụng để khởi chạy quy trình thiết lập.Nhập tên gói của ứng dụng vào trường Android package name (Tên gói Android).
(Không bắt buộc) Nhập thông tin khác về ứng dụng: Biệt hiệu của ứng dụng và Chứng chỉ ký gỡ lỗi SHA-1.
Nhấp vào Đăng ký ứng dụng.
Thêm tệp cấu hình Firebase
Tải xuống rồi thêm tệp cấu hình Android của Firebase (
) cho ứng dụng của bạn:google-services.json Nhấp vào Download google-services.json xuống để tải Firebase Android config của bạn.
Di chuyển tệp cấu hình của bạn vào thư mục gốc mô-đun (cấp ứng dụng) của ứng dụng của bạn.
Để làm cho các giá trị trong tệp cấu hình
có thể truy cập được vào Firebase SDK, bạn cần có Trình bổ trợ Gradle cho các dịch vụ của Google (google-services.json google-services
).Trong tệp Gradle cấp gốc (cấp dự án) (
<project>/build.gradle.kts
hoặc<project>/build.gradle
), hãy thêm Trình bổ trợ các dịch vụ của Google làm phần phụ thuộc:Kotlin
plugins { id("com.android.application") version "7.3.0" apply false // ... // Add the dependency for the Google services Gradle plugin id("com.google.gms.google-services") version "4.4.2" apply false }
Groovy
plugins { id 'com.android.application' version '7.3.0' apply false // ... // Add the dependency for the Google services Gradle plugin id 'com.google.gms.google-services' version '4.4.2' apply false }
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 trình bổ trợ các dịch vụ của Google:Kotlin
plugins { id("com.android.application") // Add the Google services Gradle plugin id("com.google.gms.google-services") // ... }
Groovy
plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' // ... }
Thêm Firebase SDK vào ứng dụng của bạn
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 Firebase Cloud Messaging 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.Để có trải nghiệm tối ưu với Firebase Cloud Messaging, bạn nên bật Google Analytics trong dự án Firebase và thêm Firebase SDK cho Google Analytics vào ứng dụng của bạn.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging") implementation("com.google.firebase:firebase-analytics") }
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 dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging:24.0.1") implementation("com.google.firebase:firebase-analytics:22.1.0") }
Đồng bộ hoá dự án Android với các tệp Gradle.
Truy cập vào mã thông báo đăng ký
Để gửi tin nhắn đến một thiết bị cụ thể, bạn cần biết thiết bị đó mã thông báo đăng ký. Do bạn cần nhập mã thông báo vào một trường trong Bảng điều khiển thông báo để hoàn tất hướng dẫn này, hãy nhớ sao chép mã thông báo hoặc lưu trữ an toàn sau khi bạn truy xuất.
Khi khởi động ứng dụng lần đầu tiên, SDK FCM sẽ tạo một đăng ký
mã thông báo cho phiên bản ứng dụng khách. Nếu bạn muốn nhắm đến một thiết bị hoặc
tạo nhóm thiết bị, bạn sẽ cần truy cập vào mã thông báo này bằng cách mở rộng
FirebaseMessagingService
và ghi đè onNewToken
.
Phần này mô tả cách truy xuất mã thông báo và cách theo dõi các thay đổi vào mã thông báo. Vì mã thông báo có thể bị xoay vòng sau lần đầu bạn nên truy xuất thông tin đăng ký mới nhất được cập nhật mã thông báo.
Mã thông báo đăng ký có thể thay đổi khi:
- Ứng dụng đó được khôi phục trên một thiết bị mới
- Người dùng gỡ cài đặt/cài đặt lại ứng dụng
- Người dùng xoá dữ liệu ứng dụng.
Truy xuất mã thông báo đăng ký hiện tại
Khi bạn cần truy xuất mã thông báo hiện tại, hãy gọi
FirebaseMessaging.getInstance().getToken()
:
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Giám sát quá trình tạo mã thông báo
Lệnh gọi lại onNewToken
sẽ kích hoạt bất cứ khi nào mã thông báo mới được tạo.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
Sau khi nhận được mã thông báo, bạn có thể gửi mã đó đến máy chủ ứng dụng của mình và lưu trữ bằng cách dùng phương thức bạn ưa dùng.
Gửi tin nhắn thông báo thử nghiệm
Cài đặt và chạy ứng dụng trên thiết bị mục tiêu. Trên thiết bị Apple, bạn sẽ cần để chấp nhận yêu cầu cấp quyền nhận thông báo từ xa.
Hãy đảm bảo ứng dụng đang chạy trong nền trên thiết bị.
Trong bảng điều khiển Firebase, hãy mở trang Nhắn tin.
Nếu đây là thư đầu tiên của bạn, hãy chọn Tạo chiến dịch.
- Chọn Tin nhắn thông báo Firebase rồi chọn Tạo.
Nếu không, trên thẻ Chiến dịch, hãy chọn Chiến dịch mới rồi chọn Thông báo.
Nhập nội dung tin nhắn. Tất cả các trường khác là không bắt buộc.
Chọn Gửi tin nhắn thử nghiệm trên ngăn bên phải.
Trong trường có nhãn Add an FCM registration token (Thêm mã thông báo đăng ký FCM), hãy nhập thông tin đăng ký mã thông báo mà bạn đã nhận được ở phần trước của hướng dẫn này.
Chọn Kiểm tra.
Sau khi bạn chọn Kiểm thử, thiết bị khách được nhắm đến (với ứng dụng ở nền) sẽ nhận được thông báo.
Để biết thông tin chi tiết về cách gửi thư đến ứng dụng của bạn, hãy xem Trang tổng quan báo cáo FCM, nơi ghi lại các số thư được gửi và mở trên thiết bị Apple và Android, cùng với dữ liệu về "lượt hiển thị" (thông báo mà người dùng nhìn thấy) đối với ứng dụng Android.
Các bước tiếp theo
Gửi tin nhắn đến các ứng dụng chạy trên nền trước
Sau khi bạn gửi thành công tin nhắn thông báo khi ứng dụng đang chạy nền, xem Nhận tin nhắn trong ứng dụng Android để bắt đầu gửi thư đến các ứng dụng trên nền trước.
Không chỉ dừng lại ở nội dung thông báo
Để không chỉ dừng lại ở tin nhắn thông báo và thêm các hành vi khác, nâng cao hơn vào ứng dụng, hãy xem: