# #reactjs #firebase #firebase-authentication
Вопрос:
Пытаюсь настроить аутентификацию пользователя с помощью firebase для моего проекта react, и я не получаю никаких результатов с помощью signInWithRedirect()
and getRedirectResult()
.
Таким образом, в основном при нажатии кнопки я перенаправляюсь на сайт аутентификации Google, но затем, после того как я возвращаюсь на свою домашнюю страницу, я не получаю никаких данных, но в меню аутентификации firebase я вижу, что добавлен новый пользователь. И когда я использую signInWithPopup()
, все работает нормально, и я получаю пользовательские данные так, как хочу, но поскольку это приложение в основном предназначено для мобильных пользователей, мне нужно его использовать signInWithRedirect()
. Пожалуйста, кто-нибудь может помочь?
//Exported from another component
export const app = initializeApp(firebaseConfig);
export const provider = new GoogleAuthProvider();
//Sign in
const signInWithGoogle = () => {
signInWithRedirect(auth, provider);
};
и в других потоках я видел, что вы должны получать данные при начальной загрузке страницы, поэтому я думал, что использование useEffect
решит мою проблему, но это не так
//Get results
useEffect(() => {
getRedirectResult(auth, provider)
.then((result) => {
// This gives you a Google Access Token. You can use it to access Google APIs.
const credential = GoogleAuthProvider.credentialFromResult(result);
const token = credential.accessToken;
// The signed-in user info.
const user = result.user;
console.log(user);
})
.catch((error) => {
// Handle Errors here.
const errorCode = error.code;
const errorMessage = error.message;
// The email of the user's account used.
const email = error.email;
// The AuthCredential type that was used.
const credential = GoogleAuthProvider.credentialFromError(error);
// ...
});
}, []);