android firebase 관련 질문 올립니다 부탁 드려요 ㅠㅠ

조회수 2357회

안녕하세요 firebase를 통해 알람 푸쉬를 적용중에 있습니다. 다름이 아니라 Token값을 받아오는데 있어서 문제점을 겪고 있어서 이렇게 올립니다. 알람은 잘 받아와 지고 있습니다 헌데 Token값을 서비스를 통해서 받아와서 서버에다가 저장을 시키려고 하는데 제가 서비스에 대한 부분에 대해 부족한 것인지.. Log값이 아예 안들어옵니다 어디가 잘못 된것인지 한참 헤매고 있네요 ㅠㅠ 부탁드립니다..

먼저 매니페스트 부분입니다.

<service android:name=".MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".MyFirebaseInstanceIDService"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
    //어플리케이션 안에 들어가있습니다.
</application>

Token값을 받아오는 서비스 소스입니다.

public class MyFirebaseInstanceIDService  extends FirebaseInstanceIdService{
    private static final String TAG = "MyFirebaseIIDService";
    @Override
    public void onTokenRefresh()
    {
        // Get updated InstanceID token.
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d(TAG, "Refreshed token: " + refreshedToken);
        // TODO: Implement this method to send any registration to your app's servers.
        sendRegistrationToServer(refreshedToken);
    }

    public void sendRegistrationToServer(String token)
    {
        OkHttpClient client = new OkHttpClient();
        RequestBody body = new FormBody.Builder()
                .add("Token", token)
                .build();
        Log.d(TAG,"Body : " +body);

        Request request = new Request.Builder()
                .url("해당 URL")
                .post(body)
                .build();

        try {
            client.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

그리고 메인 화면에 이 소스를 contentview에 넣어놨습니다.

FirebaseMessaging.getInstance().subscribeToTopic("test");
 FirebaseInstanceId.getInstance().getToken();

혹시 잘못된 부분이 있을까요? 부탁드립니다 긴글 읽어주셔서 감사합니다!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 해결하셨나요? 저도 같은 증상이 있었는데 토큰 값은 처음 빌더 할 때에만 생길 수 있게 코딩 되어 있더군요. 빌더 한 앱을 삭제한 후 재 설치 하시면 토큰을 받으실 수 있습니다.

    답변이 늦어 뒷북인가요? ^ ^

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)