Когда пользователь подписывается с помощью firebase в моем приложении Android, создается объект FirebaseUser, и из этого я извлекаю токен пользователя для сохранения в качестве уникального идентификатора для каждого пользователя в моей базе данных конечных точек Google.Почему меняется токен пользователя firebase?
Я использую состояние слушателя аутентификации, который вызывается, когда пользователь подписывается:
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
mUserId = user.getToken(true).toString();
SignUpAboutFragment signUpAboutFragment = new SignUpAboutFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.sign_up_fragment_container, signUpAboutFragment, SIGN_UP_ABOUT_FRAGMENT_TAG);
ft.addToBackStack(null);
ft.commit();
}
}
};
Поле mUserId затем используется для сохранения профиля в Google датасторе:
mPresenter.saveUserData(firstName, lastName, birthday, mUserId, this, MainActivity.class);
В различной активности. Я также хочу использовать токен пользователей для совершения звонков на мою конечную точку api:
//Different activity to the above.
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// Using getToken as recommended in the firebase docs.
mUserId = user.getToken(true).toString();
}
Когда я регистрирую оба поля mUserId в двух действиях, я обнаружил, что они разные.
Почему mUserId изменяется и как я могу получить тот же токен текущего пользователя из любого места в моем приложении?
Так UID остается постоянным? @Rosario Pereira Fernandes –
Да, это @TomFinet –