현재 상황으로는 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());
});