firebase с реагировать: signInWithEmailAndPassword, похоже, не сбоит и не преуспеет - PullRequest
0 голосов
/ 02 мая 2020

У меня есть приложение реагирования, в котором я пытаюсь реализовать аутентификацию с помощью firebase. Регистрация, кажется, в порядке: зарегистрированные пользователи отображаются в моей консоли Firebase. Но у меня возникают проблемы при входе на работу.

У меня есть файл firebase.tsx со следующими функциями, в том числе:

import "firebase/auth";
import "firebase/firebase-firestore";

const config = {
//removed for privacy reasons
};

class Firebase {
  constructor() {
    app.initializeApp(config);
  }

 login(email: any, password: any) {
    console.log("login function called");
    return app
      .auth()
      .signInWithEmailAndPassword(email, password)
      .then(() => {
        console.log("signInWithEmailAndPassword succes");
      })
      .catch(err => {
        console.log(err);
      });
  }

  logout() {
    return app.auth().signOut();
  }

  async register(name: any, email: any, password: any) {
    await app.auth().createUserWithEmailAndPassword(email, password);
    //@ts-ignore
    return app.auth().currentUser.updateProfile({
      displayName: name
    });
  }

  getCurrentUsername() {
    console.log(app.auth().currentUser);
    //@ts-ignore
    return app.auth().currentUser.displayName;
  }

isInitialized() {
    console.log("is initialized is called in firebase.tsx");
    return new Promise(resolve => {
      app.auth().onAuthStateChanged(resolve);
    }).then(() => {
      console.log("onauthstatechange resolved");
    });
  }

}

export default new Firebase();

, в моем файле app.tsx, среди прочего, этот код:

const [firebaseInitialized, setFirebaseInitialized] = useState(false);

  useEffect(() => {
    firebase.isInitialized().then((val: any) => {
      console.log(JSON.stringify(val));
      setFirebaseInitialized(val);
    });
  }, [firebaseInitialized]);

когда я нажимаю кнопку входа в моем приложении, вызывается функция входа из firebase.tsx, потому что консоль говорит «функция входа вызвана». «signInWithEmailAndPassword succes» не отображается в консоли, но, что примечательно, также не появляется сообщение об ошибке из .catch (если я не вхожу в систему с ложными учетными данными). Так что, вероятно, что-то не так с этой частью, но я не понимаю, почему или как. Что происходит, так это то, что введенные имя пользователя и пароль отображаются в URL моего браузера. «Инициализируется, вызывается в firebase.tsx», а «onauthstatechange разрешен» также отображаются в консоли.

Итак, в журнал заносятся следующие вещи:

  • «Функция входа в систему называется ";
  • " инициализируется, вызывается в firebase.tsx "
  • " onauthstatechange разрешен "
  • " undefined "

поступает неопределенный журнал с console.log(JSON.stringify(val)); в хуке useEffect. использование браузера в режиме инкогнито не имеет значения

Любые идеи будут с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...