Firebase의 장치 토큰을 강제로 재설정하는 방법
같은 일을 하고 싶다는 정보가 인터넷에 떠돌지만 정보가 낡은 deprecated 방법이어서 혼란스럽다.집필 시점(2021/06/16)에서 이 방법으로 리셋할 수 있습니다.
영패를 생성할 때 호출하는 방법
디바이스 토큰을 이용해 누르는 알림을 보내려면 일반적으로 Firebase Messaging Service()를 계승하는 클래스의 onNew Token()에서 한 서버에 토큰을 설정하여 처리한다.
MyFirebaseService.kt
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
// ここでトークンの設定処理を実行する。
}
}
공식 문서에 따르면 onNewToken()의 호출 시간은This is invoked after app install when a token is first generated, and again if the token changes.
네.
온뉴스토큰(onNewToken) 리셋을 강제로 호출하는 방법이 있으면 좋겠지만, 없는 것 같아 장비 영패 삭제와 수령 처리를 실시한다.
장치 토큰의 삭제 및 재수령
FirebaseMessaging.getInstance().deleteToken()
에서 영패를 삭제한 후 다시 FirebaseMessaging.getInstance().getToken()
를 호출하면 새 장치 영패를 호출할 수 있습니다.(사용org.jetbrains.kotlinx:kotlinx-coroutines-play-servicesMainActivity.kt
val firebaseMessaging = FirebaseMessaging.getInstance()
GlobalScope.launch {
val exToken = firebaseMessaging.token.await()
Timber.e("Token_ex:$exToken") //Token_ex:dP5qQdyNSyylMRKeUxbKzl:APA91bHWiNwGmP2q3WI7i...
firebaseMessaging.deleteToken().await()
val cuToken = firebaseMessaging.token.await()
Timber.e("Token_cu:$cuToken") //Token_cu:dP5qQdyNSyylMRKeUxbKzl:APA91bH7ZhECdyhiwodga...
}
deprecatedFirebaseInstanceId 클래스를 사용했다면 FirebaseInstanceId#deleteToken()이 아니라 deleteInstanceId() 방법메시지을 사용해야 한다.또한 deleteinstanceId () 방법의 주석에서This method is deprecated. Use FirebaseInstallations.delete() and FirebaseMessaging.deleteToken() instead.
따라서 처음에는
FirebaseMessaging.getInstance().deleteToken()
외에도 FirebaseInstallations.delete()
를 호출해 영패를 다시 받았다.(이곳에서도 리셋을 잘 할 수 있다) 하지만 시도해 봤는데 위에서 말한 바와 같이 순서대로 삭제와 취득을 부르는 것만으로도 기대하는 행위가 되어 여기에 기재되어 있다.솔직히 뭐가 좋을지 모르겠어요. 아는 사람이 오면 댓글을 남겨주면 좋겠어요.(받다
Firebase 콘솔의 Notification Compose 를 사용합니다.
테스트 메시지를 보내는 것을 선택하면 지정한 영패에 메시지를 보낼 수 있습니다.
추송 통지는 삭제된 영패처에 보내지 않았고, 이미 재취득한 영패처에 보낸 것으로 확인되었습니다.
문서
Reference
이 문제에 관하여(Firebase의 장치 토큰을 강제로 재설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yh12/articles/565650a0e789f6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)