programing

파이어베이스 이후로 지금 어떤 방법을 사용해야 합니까?InstanceId.getInstance().getToken()이 더 이상 사용되지 않습니다.

closeapi 2023. 6. 5. 23:56
반응형

파이어베이스 이후로 지금 어떤 방법을 사용해야 합니까?InstanceId.getInstance().getToken()이 더 이상 사용되지 않습니다.

저는 지금 푸시 알림을 보내는 파이어베이스 토큰을 얻는 올바른 방법이 무엇인지 알고 싶습니다.토큰()은 더 이상 사용되지 않습니다.

업데이트된 답변

파이어베이스InstanceId는 더 이상 사용되지 않지만 이제 FirebaseMessaging.getInstance().token을 사용할 수 있습니다.

예:

FirebaseMessaging.getInstance().token.addOnSuccessListener { result ->
        if(result != null){
            fbToken = result
            // DO your thing with your firebase token
        }
}

이전 답변

설명서에 나와 있는 것처럼:

이 메서드는 더 이상 사용되지 않습니다.getInstanceId()를 선호합니다.

getInstanceId()는 및 InstanceIdResult가 포함된 작업을 반환합니다.다음과 같이:

 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( new OnSuccessListener<InstanceIdResult>() {                    
                @Override
                public void onSuccess(InstanceIdResult instanceIdResult) {
                      String deviceToken = instanceIdResult.getToken();
                      // Do whatever you want with your token now
                      // i.e. store it on SharedPreferences or DB
                      // or directly send it to server 
                }
});

하지만 이 접근 방식이 말 그대로 Firebase의 사용을 대체할 것이라는 것은 사실입니다.InstanceId.getInstanceId().getToken()Firebase라는 사실을 해결하지 않습니다.InstanceIdService 또한 사용할 위치에 대한 다른 질문을 남겨두는 것이 좋습니다.항상 토큰을 반환하는 모든 활동 컨텍스트에서 사용할 수 있습니다.하지만 우리가 토큰을 생성할 때와 업데이트가 거의 되지 않을 때만 얻고 싶다면 어떻게 해야 할까요?이를 위해서는 이전 Firebase Messaging Service 구현에서 NewToken의 새 메서드를 재정의해야 합니다. ("InstanceId"가 아니라 "Messaging"입니다.)

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    String deviceToken = s;
    // Do whatever you want with your token now
    // i.e. store it on SharedPreferences or DB
    // or directly send it to server 
}

이 방식 코드는 더 희박하게 유지되며 첫 번째 접근 방식을 사용할 필요조차 없습니다.

파이어베이스InstanceIdService가 더 이상 사용되지 않습니다.!

그냥 무시함.onNewToken()FirebaseMessagingService

public class LatestFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onNewToken(String mToken) {
    super.onNewToken(mToken);
    Log.e("TOKEN",mToken);
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
}} 

AndroidManifest.xml

<service
        android:name=".LatestFirebaseMessagingService"
        android:stopWithTask="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
</service>

getToken()이 또한 더 이상 사용되지 않습니다.

활동에서 토큰을 얻어야 할 경우 아래 코드를 사용합니다.

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this,  new OnSuccessListener<InstanceIdResult>() {
     @Override
     public void onSuccess(InstanceIdResult instanceIdResult) {
           String mToken = instanceIdResult.getToken();
           Log.e("Token",mToken);
     }
 });

언급URL : https://stackoverflow.com/questions/51125169/what-method-should-i-use-now-since-firebaseinstanceid-getinstance-gettoken-i

반응형