#android #firebase-cloud-messaging
#Android #firebase-облако-обмен сообщениями
Вопрос:
После обновления до новейшей Firebase нет способа получить регистрационный токен FCM для выбранного fcmSenderId:
FirebaseInstanceId
.getInstance()
.getToken(fcmSenderId, "FCM")
В документации говорится, что вместо этого следует использовать FirebaseMessaging (https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessaging#getToken()):
FirebaseMessaging
.getInstance()
.token
.addOnCompleteListener { task ->
if (task.isSuccessful) {
task.result?.let { token ->
println(token)
}
} else {
println(task.exception)
}
}
но этот метод не позволяет предоставлять пользовательский идентификатор отправителя FCM.
Проект настроил google-сервисы.json, но нужно использовать другой проект FCM.
Ответ №1:
Вы можете попробовать что-то вроде:
val options = FirebaseOptions.Builder()
.setGcmSenderId("sender")
// Also set your other project properties, like firebaseid, database if you wish
.build()
val app = FirebaseApp.initializeApp(context, options)
val messaging = app.get(FirebaseMessaging::class.java)
messaging.token.addOnCompleteListener {
}
Комментарии:
1. Получение: java.lang. Исключение IllegalArgumentException: пожалуйста, укажите свой идентификатор проекта. Для связи с API сервера Firebase требуется действительный идентификатор проекта Firebase: он идентифицирует ваш проект с помощью Google.
2. Да, вам нужно установить другие свойства вашего проекта в опции, это в основном создает новый экземпляр приложения firebase