В чем разница между instanceId и getIdToken - PullRequest
0 голосов
/ 27 января 2019

Я не понимаю, в чем разница между:

FirebaseAuth.getInstance().currentUser.getIdToken(true).addOnSuccessListener {
    Log.d("tag",it.token) // token #1
} 



FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {
    Log.d("tag", it.token) //token #2
}


Оба эти метода возвращают некоторый токен, в чем разница между ними?

Ответы [ 2 ]

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

Оба токена имеют очень различное использование и очень разные жизненные циклы.

Каждая установка приложения, использующая Firebase Cloud Messaging, имеет свой уникальный идентификатор экземпляра.Таким образом, этот идентификатор определяет одно приложение на устройстве с тех пор.Если у вас есть несколько приложений, использующих FCM на одном телефоне, каждое приложение имеет собственный идентификатор экземпляра.Если у вас одно и то же приложение, использующее FCM на нескольких телефонах, оно имеет уникальный идентификатор экземпляра на каждом телефоне.Ответ Питера содержит отличное объяснение того, когда это значение может измениться.

Каждый раз, когда пользователь входит в систему с Аутентификацией Firebase, он получает идентификационный токен.Этот ID-токен действителен в течение часа и подтверждает подлинность того, что пользователь вошел в это приложение.Через (чуть меньше) часа Firebase SDK обновляет токен ID.

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

getIdToken(boolean forceRefresh)

Извлекает токен Firebase Auth ID для пользователя;полезно при аутентификации на вашем собственном бэкэнде.

getIdToken относится к классу FirebaseUser, вы используете токен для аутентификации пользователя при использовании вашего собственного сервера.

getInstanceId() возвращает идентификатор загруженного приложения, оно также используется в FCM для отправки уведомлений на определенный телефон, на который загружено приложение.

Идентификатор экземпляра стабилен, кроме случаев, когда:

  1. Приложение удаляет идентификатор экземпляра
  2. Приложение восстанавливается на новом устройстве
  3. Пользователь удаляет / переустанавливает приложение
  4. Пользователь очищает данные приложения

https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId.html#getInstanceId()

...