투케이2K

58. (TWOK/ERROR) [Android] 파이어베이스 푸시 토큰 (firebase push token) 추출 에러 - onNewToken not working 본문

투케이2K 에러관리

58. (TWOK/ERROR) [Android] 파이어베이스 푸시 토큰 (firebase push token) 추출 에러 - onNewToken not working

투케이2K 2022. 4. 14. 12:51

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : 파이어베이스 푸시 토큰 (firebase push token) 추출 에러 - onNewToken not working

 

[에러 원인]

1. 파이어베이스 푸시 토큰 값을 확인하는 부분 FirebaseMessagingService > onNewToken 부분이 정상 호출 되지 않는 이슈

 

[해결 방법]

1. onNewToken 부분에서 파이어베이스 토큰 값 저장 및 FirebaseInstanceId.getInstance() 를 사용해 추가 토큰 값 저장 방어로직 작성

- 1차 : onNewToken 부분에서 토큰 값 저장

- 2차 : Activity onCreate 부분에서 FirebaseInstanceId.getInstance() 사용해 토큰 값 추가 저장

 

        try {
            // [파이어베이스 토큰 확인]
            FirebaseInstanceId.getInstance().getInstanceId()
                    .addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
                        @Override
                        public void onSuccess(InstanceIdResult instanceIdResult) {
                            String deviceToken = String.valueOf(instanceIdResult.getToken());
                            if (deviceToken != null && deviceToken.length()>0
                                    && !deviceToken.trim().equals("") && !deviceToken.trim().contains("null")){
                                Log.i("---","---");
                                Log.w("//===========//","================================================");
                                Log.i("","\n"+"[A_Main >> onCreate() :: FirebaseInstanceId :: 파이어베이스 토큰 확인 실시]");
                                Log.i("","\n"+"[타 입 :: onSuccess]");
                                Log.i("","\n"+"[토 큰 :: "+String.valueOf(deviceToken)+"]");
                                Log.i("","\n"+"[결 과 :: 푸시 토큰 값 확인 성공]");
                                Log.w("//===========//","================================================");
                                Log.i("---","---");

                                // [프리퍼런스에 토큰값 저장 수행 실시]
                                S_Preference.setString(getApplication(), S_FinalData.token, String.valueOf(deviceToken));
                                S_Preference.setString(getApplication(), S_FinalData.token, String.valueOf(deviceToken));
                            }
                            else {
                                Log.i("---","---");
                                Log.e("//===========//","================================================");
                                Log.i("","\n"+"[A_Main >> onCreate() :: FirebaseInstanceId :: 파이어베이스 토큰 확인 실시]");
                                Log.i("","\n"+"[타 입 :: onSuccess]");
                                Log.i("","\n"+"[토 큰 :: "+String.valueOf(deviceToken)+"]");
                                Log.i("","\n"+"[결 과 :: 푸시 토큰 값 확인 에러]");
                                Log.e("//===========//","================================================");
                                Log.i("---","---");
                            }
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Log.i("---","---");
                            Log.e("//===========//","================================================");
                            Log.i("","\n"+"[A_Main >> onCreate() :: FirebaseInstanceId :: 파이어베이스 토큰 확인 실시]");
                            Log.i("","\n"+"[타 입 :: onFailure]");
                            Log.i("","\n"+"[토 큰 :: "+String.valueOf(e.getMessage())+"]");
                            Log.i("","\n"+"[결 과 :: 푸시 토큰 값 확인 에러]");
                            Log.e("//===========//","================================================");
                            Log.i("---","---");
                        }
                    })
                    .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                        @Override
                        public void onComplete(@NonNull Task<InstanceIdResult> task) {
                            Log.i("---","---");
                            Log.d("//===========//","================================================");
                            Log.i("","\n"+"[A_Main >> onCreate() :: FirebaseInstanceId :: 파이어베이스 토큰 확인 실시]");
                            Log.i("","\n"+"[타 입 :: onComplete]");
                            Log.i("","\n"+"[성공 여부 :: "+String.valueOf(task.isSuccessful())+"]");
                            Log.d("//===========//","================================================");
                            Log.i("---","---");
                        }
                    });

        }
        catch (Exception e){
            e.printStackTrace();
        }


 

반응형
Comments