Android 如果我不';我不想实现FirebaseMessagingService?
我的应用在后台时只需要FCM通知。因此,我实际上不需要Android 如果我不';我不想实现FirebaseMessagingService?,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我的应用在后台时只需要FCM通知。因此,我实际上不需要FirebaseMessagingService。我只将其添加到我的应用程序中,以处理onNewToken回调,以防在应用程序运行时令牌发生更改: @AndroidEntryPoint class ChatFirebaseMessagingService : FirebaseMessagingService() { @Inject lateinit var userRepository: UserRepository
FirebaseMessagingService
。我只将其添加到我的应用程序中,以处理onNewToken
回调,以防在应用程序运行时令牌发生更改:
@AndroidEntryPoint
class ChatFirebaseMessagingService : FirebaseMessagingService() {
@Inject
lateinit var userRepository: UserRepository
@Inject
lateinit var sessionManager: SessionManager
override fun onNewToken(token: String) {
sessionManager.currentChatUser?.let {
userRepository.persistCurrentFcmToken(it)
}
}
}
persistCurrentFcmToken
位于存储库中:
当用户登录时,我也调用此方法
fun persistCurrentFcmToken(user: ChatUser) {
applicationScope.launch {
val token = messaging.awaitToken() ?: return@launch
val tokenList = user.fcmTokens?.toMutableList() ?: mutableListOf()
if (!tokenList.contains(token)) {
tokenList.add(token)
val userUpdate = user.copy(fcmTokens = tokenList)
userCollection.document(user.uid!!).set(userUpdate)
}
}
}
FirebaseMessagingService感觉有点毫无意义,因为我不需要前台通知。有没有办法摆脱它,或者
onNewToken
回调是不可避免的?如果您的应用程序没有FirebaseMessagingService
,并且在用户不使用应用程序时更改了令牌,您的服务器将向旧令牌发送消息,而设备将不会接收它们
创建
FirebaseMessagingService
实际上可以确保应用程序代码在应用程序未被有效使用时收到令牌更改的通知。没有FirebaseMessagingService
就无法获得此类通知,谢谢您的澄清。只有onNewToken
而没有其他功能的FirebaseMessagingService
是否很常见?对于在应用程序处于后台时只需要通知的应用程序。使用FirebaseMessagingService
的主要原因是检测令牌更改,因此,onNewToken
是其中实现的唯一方法,这是很常见的。