Firebase Token ID возвращает нулевое значение - PullRequest
0 голосов
/ 02 декабря 2018

Я работаю на firebase FCM для отправки сообщения с устройства на устройство.Тем не менее, я застрял при получении идентификатора токена.Я пытался с "FirebaseInstanceId.getInstance (). GetToken ();"но не удалось получить идентификатор токена.Он продолжает возвращать мне нулевое значение.

Я нашел сообщение, в котором говорится, что getToken () устарел, вместо него нужно использовать getInstanceId ().Однако моей андроид студии не удалось разрешить этот getInstanceId () и onNewToken ().Есть ли способ получить Fireken Base TokenID?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

В FirebaseMessagingService класс добавить код ниже.

@Override
public void onNewToken(String s) {
super.onNewToken(s);
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
  @Override
  public void onSuccess(InstanceIdResult instanceIdResult) {
   String BMrefreshedToken = instanceIdResult.getToken();
   Log.e("newToken",BMrefreshedToken);

   }
    });
}
0 голосов
/ 02 декабря 2018

Доступ к токену регистрации устройства:

При первом запуске приложения FCM SDK создает токен регистрации для экземпляра клиентского приложения.Если вы хотите настроить таргетинг на отдельные устройства или создать группы устройств, вам потребуется получить доступ к этому токену.

Вы можете получить доступ к значению токена, создав новый класс, который расширяет FirebaseInstanceIdService.В этом классе вызовите getToken в onTokenRefresh и запишите значение, как показано:

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(refreshedToken);
}

Также добавьте службу в файл манифеста:

<service
    android:name=".MyFirebaseInstanceIDService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
</service>

Обратный вызов onTokenRefresh срабатывает всякий раз, когда генерируется новый токен, поэтому вызов getToken в его контексте гарантирует вам доступ к текущему доступному регистрационному токену.FirebaseInstanceID.getToken() возвращает ноль, если токен еще не сгенерирован.

После получения токена вы можете отправить его на сервер приложений.Подробную информацию об API см. В справочнике по идентификатору экземпляра .

(из справочной информации по firebase)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...