푸시알람 설정 에러

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 : 400
  • 에러 메시지 : undefined device Token, deviceToken을 확인할 수 없습니다.
    Backend.Android.PutDeviceToken(Backend.Android.GetDeviceToken(), (callback) =>
    을 사용하여 푸시 알람을 켜놓으라고 하는데 에러가 나네요
    GetStatusCode() : 400
    GetMessage() : undefined device Token, deviceToken을 확인할 수 없습니다.

파이어베이스 sdk , google-services 넣어놨고
서버키 도 여러번 확인하고 넣어놨습니다…
어떤 이유에서 안될까요…ㅠ

안녕하세요 개발자님,
현재 파이어베이스에서 디바이스 토큰을 가져오지 못해 GetDeviceToken()의 리턴값으로 null이 리턴되는 것으로 확인이 됩니다.

안드로이드로그에서 backend push error 란 로그가 발생한 적이 있는지 확인해 주시면 감사하겠습니다.
(혹은 그 외에 에러 로그가 있는지 확인해 주세요.)

    Backend.Android.PutDeviceToken(Backend.Android.GetDeviceToken(), (callback) => {
        cn.F_print("BRO.GetStatusCode() : " + BRO.GetStatusCode().ToString());
        cn.F_print("BRO.GetMessage() : " + BRO.GetMessage().ToString());
    });

로 변경해서 실행해 보니
Code는 200
Message는 Success
로 나오는데…

어떤걸 수정해야 하는지 모르겠습니다.

현재 상황으로는 PutDeviceToken 함수에 사용되는 디바이스 토큰 인자값이 빈값으로 출력이 되는 것으로 확인됩니다.

string deviceToken = Backend.Android.GetDeviceToken();
Debug.Log("디바이스 토큰 : " + deviceToken);

GetDeviceToken()함수는 안드로이드 플러그인으로 파이어베이스 플러그인에서 발생한 디바이스 토큰의 값을 가져오는 함수로, 파이어베이스에서 에러가 발생할 경우, 빈값으로 리턴이 될 수 있습니다.

예상된 에러로는 파이어베이스 sdk 혹은 json 파일이 잘못 설치된 경우가 있으며,

  • 파이어베이스의 reimport
  • 플러그인 정리(Assets > External Depengency Manager > Android Resolver > Force Resolve)
  • 파이어베이스의 패키지네임 설정과 유니티의 패키지네임 설정이 일치하는지 확인
  • 파이어베이스에서 제공하는 google-services.json 파일 다시 적용

혹시 안드로이드 스튜디오를 통해 안드로이드 로그 확인이 가능하다면 안드로이드 로그에 backend push error가 발생한 적이 있는지 확인해주시면 에러 확인에 도움이 됩니다.


추가적으로 제공해주신 코드의 경우, 리턴되는 callback과 Debug하는 BRO가 서로 다른 값이여서 올바르지 않은 값일 수 있습니다.
아래 코드와 같이 변경 후 테스트해주시기 바랍니다.


string deviceToken = Backend.Android.GetDeviceToken();
Debug.Log("디바이스 토큰 : " + deviceToken);

    Backend.Android.PutDeviceToken(deviceToken, (callback) => {
        cn.F_print("callback.GetStatusCode() : " + callback.GetStatusCode().ToString());
        cn.F_print("callback.GetMessage() : " + callback.GetMessage().ToString());
    });
  • 파이어베이스의 reimport
  • 플러그인 정리(Assets > External Depengency Manager > Android Resolver > Force Resolve)
    로 해결하였습니다.
    임포트가 제대로 안되있었나 봅니다…ㅠ

구체적으로 답변해 주셔서 정말 감사합니다.
많은 도움이 되었습니다.
감사합니다~!!