Ini pertama kalinya saya menggunakan FCM.
Saya mendownload sampel dari firebase / quickstart-android dan menginstal FCM Quickstart. Tetapi saya tidak bisa mendapatkan token apa pun dari log bahkan menekan tombol LOG TOKEN di aplikasi.
Kemudian saya mencoba mengirim pesan dengan Firebase console dan menetapkan untuk menargetkan nama paket aplikasi saya. Saya mendapat pesan masuk.
Saya ingin tahu apakah FCM dapat digunakan? GCM semuanya baik-baik saja.
Larutan:
Karena saya bukan pengembang Android, hanya pengembang backend. Jadi saya butuh waktu untuk menyelesaikannya. Menurut saya, ada beberapa bug di aplikasi sampel.
Kode:
RegistrationIntentService.java
public class RegistrationIntentService extends IntentService {
private static final String TAG = "RegIntentService";
public RegistrationIntentService() {
super(TAG);
}
@Override
protected void onHandleIntent(Intent intent) {
String token = FirebaseInstanceId.getInstance().getToken();
Log.i(TAG, "FCM Registration Token: " + token);
}
}
MyFirebaseInstanceIDService.java
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. Note that this is called when the InstanceID token
* is initially generated so this is where you would retrieve the token.
*/
// [START refresh_token]
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
// String refreshedToken = FirebaseInstanceId.getInstance().getToken();
// Log.d(TAG, "Refreshed token: " + refreshedToken);
//
// // TODO: Implement this method to send any registration to your app's servers.
// sendRegistrationToServer(refreshedToken);
//
Intent intent = new Intent(this, RegistrationIntentService.class);
startService(intent);
}
// [END refresh_token]
/**
* Persist token to third-party servers.
* <p>
* Modify this method to associate the user's FCM InstanceID token with any server-side account
* maintained by your application.
*
* @param token The new token.
*/
private void sendRegistrationToServer(String token) {
// Add custom implementation, as needed.
}
}
Tambahkan ini di MainActivity.java.
Intent intent = new Intent(this, RegistrationIntentService.class);
startService(intent);
Setelah melakukan di atas, Anda mendapatkan Token di Logcat. Tapi akhirnya, saya menemukan cara yang mudah untuk mendapatkannya. Cukup gunakan mode debug untuk menginstal aplikasi sampel dan Anda bisa mendapatkan token saat pertama kali menginstalnya.
Tetapi saya tidak tahu mengapa itu tidak dapat mencetak log ketika saya menginstalnya. Mungkin terkait dengan sistem seluler.
Dan mengapa saya tidak bisa mendapatkan Notifikasi. FirebaseMessagingService.onMessageReceived tidak memanggil sendNotification