Firebase 身份验证 - 登录问题

Posted

技术标签:

【中文标题】Firebase 身份验证 - 登录问题【英文标题】:Firebase Authentication - SignIn issue 【发布时间】:2020-12-22 15:21:34 【问题描述】:

我得到了登录表单 - SignIn.js:

<form onSubmit=this.onSubmit>
    <div className="form-group">
        <label htmlFor="email">Email</label>
        <input type="text" className="form-control" name="email" value=this.state.email onChange=this.onChange />
    </div>
    <div className="form-group">
        <label htmlFor="password">Password</label>
        <input type="password" className="form-control" name="password" value=this.state.password onChange=this.onChange />
    </div>
    <input type="submit" value="Login" className="btn btn-primary btn-block" />
</form>
...  
export default firebaseConnect()(SignIn);

onSubmit,我想登录到 Firebase/Firestore

 onSubmit = e => 
    e.preventDefault();

    const  firebase  = this.props;
    const  email, password  = this.state;

    firebase
      .login(email, password)
      .catch(err => alert('Invalid Login Credentials'));
  ;

当我尝试登录时出现此错误:

TypeError: firebase.auth is not a function

我也试过这个:

firebase.auth().signInWithEmailAndPassword(email, password);

但我遇到了同样的问题。

我的商店

const rootReducer = combineReducers(
  firebase: firebaseReducer,
  firestore: firestoreReducer);
const initialState = ;    
const store = createStore(
  rootReducer,
  initialState,
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

const rrfProps = 
 firebase,
 config: ,
 dispatch: store.dispatch,
 createFirestoreInstance;

ReactDOM.render(
  <Provider store=store>
    <ReactReduxFirebaseProvider ...rrfProps>

      <App />

    </ReactReduxFirebaseProvider>
  </Provider>,
  document.getElementById("root")
);

firebaseConfig.js

const fc = 
//data from Firebase (apiKey, authDomain...)
    
firebase.initializeApp(fc);
firebase.firestore();
export default firebase;

【问题讨论】:

您是如何将 Firebase 添加到您的项目中的? 是的,我可以从 firebase 读取数据 const app = firebase.initializeApp(appConfiguration); const auth = app.auth(); auth.signInWithEmailAndPassword(email, password).... 应该可以。我认为您指的是错误的身份验证可能是? 试过但没有帮助....如果您有使用 auth.signIn 的工作示例,请提供一些链接 你看过了吗:***.com/questions/48592656/… 【参考方案1】:

基于firebase.auth is not a function,我在firebaseConfig.js中做了如下操作

import firebase from "firebase";
import "firebase/firestore";

这也很有效:

import firebase from "firebase/app";
import "firebase/firestore";
import "firebase/auth";

【讨论】:

以上是关于Firebase 身份验证 - 登录问题的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Firebase 用户是不是使用 facebook 身份验证登录

如何确定 Firebase 用户是不是使用 facebook 身份验证登录

Firebase 身份验证 - 登录问题

使用 Firebase 登录的 Loopback 4 身份验证

带有苹果登录的 Firebase 身份验证网络

FireBase 身份验证登录/注册异常