FirebaseInstanceIdService deprecated

2021. 4. 23. 19:19Android/Firebase

반응형

FirebaseInstanceIdService가 deprecated가 됨에 따라 해당 서비스에서 제공하던 onTokenRefresh() 등의 메소드 사용이 불가

 

그리고, 기존에 앱 초기등록시 만들어지는 토큰을 FirebaseInstanceId.getInstance().getToken() 형식으로 간단히 받을 수 있었는데. 이또한 deprecated 되었다.

 

그렇다면 이제는 어떤거를 이용해야 하느냐하면 FirebaseMessagingService 클래스이다.

 

public class MyFirebaseMsgService extends FirebaseMessagingService {



    /* 토큰이 새로 만들어질때나 refresh 될때  */



    @Override



    public void onNewToken(String s) {



        super.onNewToken(s);

        Log.e("NEW_TOKEN", refreshedToken);



        /* DB서버로 새토큰을 업데이트시킬수 있는 부분 */



    }



    /* 메세지를 새롭게 받을때 */



    @Override



    public void onMessageReceived(RemoteMessage remoteMessage) { 



        Log.d(TAG, "From: " + remoteMessage.getFrom());



       /* 새메세지를 알림기능을 적용하는 부분 */



     if (remoteMessage.getNotification() != null) {



        Log.d(TAG, "From: " + remoteMessage.getFrom());

        Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());



        String messageBody = remoteMessage.getNotification().getBody();

        String messageTitle = remoteMessage.getNotification().getTitle();



     }

    }

}

 

또한 AndroidManifest.xml 내에 적용해야 하는 코드이다.

 

<service

        android:name=".MyFirebaseMsgService"

        android:stopWithTask="false">

        <intent-filter>

            <action android:name="com.google.firebase.MESSAGING_EVENT" />

        </intent-filter>

</service>

 

MainActivity.java 상에서 예전에는  

 

String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d("FCM", "Refreshed Device token: " + refreshedToken);  

 

이런식으로 이용해서 토큰값을 받았는데, 이제는 다음과 같이 해야한다.

 

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this,  new OnSuccessListener<InstanceIdResult>() {



     @Override

     public void onSuccess(InstanceIdResult instanceIdResult) {



           String newToken = instanceIdResult.getToken();

           Log.e("newToken", newToken);

     }

 });

 

출처 : https://wonpaper.tistory.com/192

참고 : https://push.tason.com/resources/FirebaseInstanceIdService%20is%20deprecated.html

https://bb-library.tistory.com/104

반응형

'Android > Firebase' 카테고리의 다른 글

FCM(Firebase Cloud Messaging)  (1) 2024.03.12
딥링크 / 앱링크 / 다이나믹 링크  (0) 2024.03.12
Firebase Multi Project 검토  (0) 2023.10.19