在Firebase

时间:2017-08-18 11:30:50

标签: firebase firebase-authentication google-signin

在Firebase的documentation中声明

  

您在Firebase项目中创建新用户,方法是调用   createUserWithEmailAndPassword方法或通过登录用户获取   首次使用联合身份提供商,例如Google登录   或Facebook登录。

我使用react-native-google-signin library登录,经过一天的思考后,它终于正常工作了。登录成功后,我可以看到登录的用户数据。

但是在Firebase控制台中,在身份验证下我没有看到添加任何新用户。

当然我觉得处理它的一种方式是看起来像

GoogleSignin.signIn().then(user => {
    // if the user doesn't already exist        
    firebase.auth()
        .createUserWithEmailAndPassword(user.email, randomPassowrd);
}) 

但这感觉就像是一种解决方法,而且医生说你可以通过谷歌登录来在firebase中创建一个新用户...那么为什么这不会自动发生呢?

这是我当前的实现,我认为这是最简单的方法,因为我说登录成功并且数据流入。

GoogleSignin
    .configure({
        iosClientId: IOS_CLIENT_ID
    })
    .then(() => {
         GoogleSignin
        .signIn()
        .then((user) => {
            console.log('user ->', user);
            dispatch(LoginSuccessAction(user))
        })
        .catch((err) => {
            dispatch(LoginFailAction())
        })
        .done();
    })
    .done();

1 个答案:

答案 0 :(得分:0)

如果您将用户与Google(或任何其他提供商)签署到Firebase身份验证中,它们将显示在Firebase Authentication console中。

您分享的代码并未将用户签到Firebase,因此他们确实无法在Firebase控制台中显示(他们也不会对Firebase服务进行身份验证访问)。您错过了对firebase.auth().signInWithCredential(credential)的来电,如下所示:https://firebase.google.com/docs/auth/web/google-signin#advanced-handle-the-sign-in-flow-manually