代码之家  ›  专栏  ›  技术社区  ›  Darren

firebase.auth().setPersistence错误为未定义的“Persistence”

  •  0
  • Darren  · 技术社区  · 6 年前

    我正在使用Firebase auth 处理表单中用户的身份验证,但我遇到此错误

    未定义的“持久性”错误

    添加时 firebase.auth().setPersistence .

    onSubmit = event => {
      const { firebase } = this.props;
      const { email, password, remember } = this.state;
      firebase
        .doSignInWithEmailAndPassword(email, password, remember)
        .then(authUser => {
          firebase.doEmailUpdateUser(authUser);
        })
        .then(() => {
          this.setState({ error: null });
          navigate(ROUTES.INDEX);
        })
        .catch(error => {
          this.setState({
            error,
            errorOpen: true
          });
        });
    
      event.preventDefault();
    };
    

    鉴于 firebase.doSignInWithEmailAndPassword(email, password, remember)

    doSignInWithEmailAndPassword = (email, password, remember) => {
      this.auth
        .setPersistence(
          `${
            remember
              ? this.auth.Auth.Persistence.LOCAL
              : this.auth.Auth.Persistence.SESSION
          }`
        )
        .then(() => this.auth.signInWithEmailAndPassword(email, password));
    };
    

    this.auth = app.auth();

    我错过什么了吗?我做错了什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nicholas Tower    6 年前

    看来你是想得到 Auth.Persistence 从错误的对象。你说 this.auth = app.auth() ,所以我假设 app 是从firebase进口的 import app from 'firebase' . 如果不正确,请告诉我您是如何导入的。

    如果我的假设是正确的,那么您需要访问以下属性 app.auth.Auth.Persistence.LOCAL . 您当前的版本更像 app.auth().Auth.Persistence.LOCAL