Я пытаюсь получить значение 'getUid' из firebase для уже существующего пользователя в базе данных firebase. Не работает, когда,
Работает, когда,
Выдает ошибку, говоря, что getCurrentUser имеет значение null. Ниже мой код,
private FirebaseAuth firebaseauth;
firebaseauth = FirebaseAuth.getInstance();
firebaseauth.getCurrentUser();
user_id = firebaseauth.getCurrentUser().getUid();
Я хочу знать, почему getCurrentUser возвращает null для уже существующего зарегистрированного пользователя при повторной установке приложения. Любая помощь была бы замечательной. Заранее спасибо.
@IvanLeHjelmeland Это не работает, потому что первая строка в этом методе - firebaseAuth.getCurrentUser (), и она возвращает мне NULL.
Но что, если вы добавите AuthStateListener вместо того, чтобы просто читать текущего пользователя, вы получите пользователя? stackoverflow.com/q/41797358/3655491
@IvanLeHjelmeland Он по-прежнему возвращает null
Если FirebaseAuth.getInstance().getCurrentUser() возвращает null, в настоящее время нет пользователя, выполнившего вход в соответствии с аутентификацией Firebase. Невозможно сказать, почему это так, не видя, как вы входите в систему. Я рекомендую взглянуть на как создать минимальный, полный, проверяемый пример, чтобы повысить вероятность того, что мы сможем помочь.
Кроме того, я определенно рекомендую принять предложение Ивана и использовать слушателя состояния авторизации. Если это по-прежнему не срабатывает для ваших аутентифицированных пользователей, все равно покажите код, который вы использовали в MCVE, поскольку использование прослушивателя состояния аутентификации исключает довольно существенный (и сложный) фрагмент кода в Firebase Authentication SDK на Android. .
@Mustafa код, добавленный OP, делает это
@Anusha, вы должны добавить свой код туда, где вы вошли в систему, как пользователь.
Описанный здесь onAuthListener может вам помочь: stackoverflow.com/a/41538113/3655491