Firebase Auth有时不起作用

时间:2018-07-13 19:07:46

标签: firebase authentication oauth

我在网络应用程序上使用Firebase Auth,并且通过chrome扩展程序将应用程序插入网页。

新用户使用Google帐户或电子邮件+密码使用Firebase API创建帐户。

入职过程的第一步之一是打开一个新标签(与应用相同的域),并在其中注入嵌入iframe的应用。 Iframe与Web应用程序(用户在其中注册)具有相同的域。 “ iframe应用”使用Firebase Auth登录用户。

对于某些新用户,Firebase Auth不会检索用户。对于某些新用户,Firebase Auth确实会检索新用户。

为什么会缺乏一致性?

使用Google进行注册的代码

handleSignUpGoogle = () => {
    const provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('email');
    provider.addScope('profile');

    return firebase.auth().signInWithPopup(provider);
}

使用电子邮件和密码进行注册的代码

    handleSignUp = () => {
    const {emailValue, passwordValue} = this.state;
    firebase.auth().createUserWithEmailAndPassword(emailValue, passwordValue).then(() => {
        this.props.onClose();
    }).catch(err => {
        this.setState({errorMessage: err.message});
    });
}

用于从“ Iframe应用程序”登录用户的代码

firebase.auth().onAuthStateChanged((firebaseUser) => {
        if (firebaseUser) {
            firebaseUser.getIdToken().then(token => {
                fetchSignInUser(token).then((user) => {
                    if (user && user.id && !this.state.user) {
                        // doing things here
                        return;
                    }
                    ...
    });

0 个答案:

没有答案