ご閲覧いただきましてありがとうございます。
ReactとFirebaseを使って、認証機能を実装しています。
ユーザーがログインしている状態で、Login画面に入ろうとした場合はHome画面にリダイレクトするような仕様を実装したいと考えています。その逆に、ログインしていない状態であれば逆のことをしたいと考えています。
firebase.auth().currentUser
の情報を使って、ログイン状態の有無を判別しています。このユーザー情報は取得できているようですが、React Routerの <Redirect />
コンポーネントが機能していません。
Login.js
React
1import React from "react"; 2import firebase from "../config/firebase"; 3 4import Button from "@material-ui/core/Button"; 5 6import { withRouter, Redirect } from "react-router"; 7 8class Login extends React.Component { 9 constructor(props) { 10 super(props); 11 } 12 13 login = () => { 14 const provider = new firebase.auth.GoogleAuthProvider(); 15 firebase.auth().signInWithRedirect(provider); 16 17 this.props.history.push("/"); 18 }; 19 20 render() { 21 return ( 22 <div> 23 {firebase.auth().currentUser !== null ? ( 24 <Redirect to="/" /> 25 ) : ( 26 <Button variant="contained" color="primary" onClick={this.login}> 27 Google Login 28 </Button> 29 )} 30 </div> 31 ); 32 } 33} 34 35export default withRouter(Login);
下記の記事を参考にしながら進めているのですが、何か足りない要素などがあるのでしょうか。
https://qiita.com/kuropp/items/daf69b0506a4a44f0a25
特にエラー文などはなく、リダイレクトが動いていないという状態です。
お手数ですがお知恵を拝借させていただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。