Semoga Anda semua mengetahui kelas ini, yang digunakan untuk mendapatkan token notifikasi setiap kali token notifikasi firebase di-refresh, kami mendapatkan token yang di-refresh dari kelas ini, Dari metode berikut.
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Untuk menggunakan ini karena saya ingin mengimplementasikan FCM, saya memperpanjang MyClass dari FirebaseInstanceIdService
Tapi, Menunjukkan bahwa FirebaseInstanceIdService sudah usang
Adakah yang tahu ini ?, Metode atau kelas apa yang harus saya gunakan alih-alih ini untuk mendapatkan token yang diperbarui karena ini sudah usang.
Saya menggunakan : implementation 'com.google.firebase:firebase-messaging:17.1.0'
Saya memeriksa dokumen yang sama tidak ada yang disebutkan tentang ini. : DOKUMEN PENGATURAN FCM
MEMPERBARUI
Masalah ini telah diperbaiki.
Karena Google tidak lagi menggunakan FirebaseInstanceService
,
Saya mengajukan pertanyaan untuk menemukan jalan dan saya mengetahui bahwa Kami bisa mendapatkan Token dari FirebaseMessagingService ,
Seperti sebelumnya, ketika saya bertanya Dokumen Pertanyaan tidak diperbarui tetapi Sekarang Google docs diperbarui sehingga untuk info lebih lanjut, Rujuk dokumen google ini: FirebaseMessagingService
LAMA Dari: FirebaseInstanceService (Sudah usang)
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
BARU Dari: FirebaseMessagingService
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}
Terima kasih.
sumber
super.onNewToken(s);
? (Saya tidak melihatnya dipanggil di firebase.google.com/docs/cloud-messaging/android/client .)Jawaban:
pemadam api di sini
Periksa dokumentasi referensi untuk
FirebaseInstanceIdService
:Anehnya JavaDoc untuk
FirebaseMessagingService
tidak menyebutkanonNewToken
metode belum. Sepertinya tidak semua dokumentasi yang diperbarui telah diterbitkan. Saya telah mengajukan masalah internal untuk mendapatkan pembaruan untuk dokumen referensi yang diterbitkan, dan untuk mendapatkan sampel dalam panduan ini diperbarui juga.Sementara itu panggilan lama / usang, dan yang baru harus berfungsi. Jika Anda mengalami masalah dengan salah satu, posting kode dan saya akan lihat.
sumber
Ya
FirebaseInstanceIdService
sudah usangTidak perlu menggunakan
FirebaseInstanceIdService
layanan untuk mendapatkan token FCM Anda dapat menghapusFirebaseInstanceIdService
layanan dengan amanSekarang kita perlu
@Override onNewToken
mendapatkanToken
diFirebaseMessagingService
KODE SAMPEL
EDIT
cara mendapatkan token dalam aktivitas Anda
Sekarang kita perlu menggunakan
getInstanceId ()
untuk menghasilkan tokengetInstanceId ()
MengembalikanID
token yang dihasilkan secara otomatis untukFirebase
proyek ini .Ini menghasilkan ID Instance jika belum ada, yang mulai mengirim informasi secara berkala ke backend Firebase.
Kembali
InstanceIdResult
yang memegangID
dantoken
.KODE SAMPEL
EDIT 2
Ini adalah kode kerja untuk kotlin
sumber
Dan ini:
seharusnya menjadi solusi usang:
EDIT
FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()
dapat menghasilkan pengecualian jika tugas tersebut belum selesai, sehingga metode yang dijelaskan Nilesh Rathod (with.addOnSuccessListener
) adalah cara yang benar untuk melakukannya.Kotlin:
sumber
Kotlin memungkinkan kode yang lebih sederhana daripada yang ditampilkan di jawaban lain.
Untuk mendapatkan token baru setiap kali disegarkan:
Untuk mendapatkan token dari mana saja saat runtime:
sumber
FirebaseinstanceIdService
sudah ditinggalkan. Jadi harus menggunakan "FirebaseMessagingService"Silakan kirim gambar:
sumber
Di KOTLIN: - Jika Anda ingin menyimpan Token ke dalam DB atau preferensi bersama, ganti onNewToken di FirebaseMessagingService
Dapatkan token saat dijalankan, gunakan
sumber
override fun onNewToken(token: String)
(tanpa tanda tanya).Kelas implementasi FCM:
Dan sebut inisialisasi dalam Activity atau APP:
AndroidManifest.xml:
** Jika Anda menambahkan "INSTANCE_ID_EVENT" jangan lupa menonaktifkannya.
sumber
Anda harus menggunakan
FirebaseMessagingService()
sebagai gantinyaFirebaseInstanceIdService
sumber