programing

파이어베이스의 FCM 토큰이란 무엇입니까?

instargram 2023. 6. 21. 22:10
반응형

파이어베이스의 FCM 토큰이란 무엇입니까?

새 Firebase의 Notification 아래에서 개발자가 특정 장치로 알림을 보낼 수 있다고 언급했습니다.이를 위해 콘솔에서 FCM 토큰을 요청합니다.정확히 무엇이고 어떻게 그 토큰을 받을 수 있습니까?

그것은 정확히 무엇이니?

으로 FCM이라고도 .registrationToken 예를 구글-클라우드-스캐너와 같습니다.GCMFCM 문서에 설명된 대로:

메시지를 수신할 수 있도록 GCM 연결 서버에서 클라이언트 앱으로 발급한 ID입니다.등록 토큰은 비밀로 유지해야 합니다.


그 토큰은 어떻게 받을 수 있습니까?

업데이트: 호출을 통해 토큰을 계속 검색할 수 있습니다.getToken()FCM의 , "FCM"은FirebaseInstanceIdService.onTokenRefresh()경험에 비추어 볼 때, 그것은 이전과 동일한 방식으로 작동합니다.


이전 답변:

FCM 문서에 따름:

앱을 처음 시작할 때 FCM SDK는 클라이언트 앱 인스턴스에 대한 등록 토큰을 생성합니다.단일 장치를 대상으로 지정하거나 장치 그룹을 만들려면 이 토큰에 액세스해야 합니다.

Firebase를 확장하여 토큰의 값에 액세스할 수 있습니다.InstanceIdService입니다.매니페스트에 서비스를 추가했는지 확인한 다음 get을 호출합니다.onTokenRefresh 컨텍스트에서 토큰을 생성하고 다음과 같이 값을 기록합니다.

@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);
}

새 토큰이 생성될 때마다 onTokenRefresh 콜백이 실행되므로 get을 호출합니다.컨텍스트의 토큰은 사용 가능한 현재 등록 토큰에 액세스할 수 있도록 합니다.파이어베이스사례ID.getToken()은 토큰이 아직 생성되지 않은 경우 null을 반환합니다.

토큰을 획득한 후 앱 서버로 토큰을 전송하고 원하는 방법으로 저장할 수 있습니다.API에 대한 자세한 내용은 인스턴스 ID API 참조를 참조하십시오.

그들은 get을 추천하지 않았습니다.아래 릴리스 정보의 토큰() 메서드입니다.대신 getInstanceId를 사용해야 합니다.

https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId

Task<InstanceIdResult> task = FirebaseInstanceId.getInstance().getInstanceId();
task.addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
      @Override
      public void onSuccess(InstanceIdResult authResult) {
          // Task completed successfully
          // ...
          String fcmToken = authResult.getToken();
      }
});

task.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
    // Task failed with an exception
    // ...
}
});

동일한 수신기에서 성공 및 실패를 처리하려면 OnCompleteListener를 연결합니다.

task.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
    if (task.isSuccessful()) {
        // Task completed successfully
        InstanceIdResult authResult = task.getResult();
        String fcmToken = authResult.getToken();
    } else {
        // Task failed with an exception
        Exception exception = task.getException();
    }
}
});

또한, 파이어베이스.InstanceIdServiceClass가 더 이상 사용되지 않으며 OnTokenRefresh를 대체하기 위해 FireBaseMessagingService에서 onNewToken 메서드를 제안했습니다.

https://firebase.google.com/support/release-notes/android 의 릴리스 노트를 참조할 수 있습니다.

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    Use this code logic to send the info to your server.
    //sendRegistrationToServer(s);
}

파이어베이스InstanceIdService가 이제 더 이상 사용되지 않습니다.Firebase Messaging Service의 onNewToken 메서드에서 토큰을 받아야 합니다.

문서를 확인합니다.

정보를 얻을 수 있는 "파이어베이스 클라우드 메시징 토큰"에 대한 업데이트가 있습니다.

저는 그 변화에 대해 정말 알고 싶어서 지원팀에 메일을 보냈습니다.Firebase Cloud Messaging 토큰이 서버 키로 곧 다시 돌아갑니다.변경할 사항이 없습니다.잠시 후 서버 키를 다시 볼 수 있습니다.

언급URL : https://stackoverflow.com/questions/37671380/what-is-fcm-token-in-firebase

반응형