Firebase github身份验证功能未记录值

时间:2020-10-19 05:59:21

标签: reactjs firebase firebase-authentication

我想知道为什么这些值没有记录到控制台。 我想访问结果对象,然后使用useState挂钩设置用户。每当我单击登录按钮时。它不会将任何内容记录到控制台。只需登录用户,但我想访问存储在此处的用户名属性(result.additionalUserInfo.username) 请帮助我解决这个问题

console.log(result.additionalUserInfo.username);
console.log(result.additionalUserInfo.profile);

这是我的代码

import React, { useState,useContext } from 'react'
import { createContext } from 'react';
import { useEffect } from 'react';
import {auth} from '../config/fbConfig'

const AuthContext = createContext();

export const useAuth = () => {
    return useContext(AuthContext);
}

export const AuthProvider = ({children}) => {
    const [currentUser, setCurrentUser] = useState();
    const [loading, setLoading] = useState(true);

    const provider = new auth.GithubAuthProvider();
    // provider.addScope('user');
    const githubSignIn = () => {
        // return auth().signInWithRedirect(provider);
        auth().signInWithRedirect(provider)
        .then(function(result) {
        console.log(result.additionalUserInfo.username);
        console.log(result.additionalUserInfo.profile);
        })
        .catch(function(error) {
            // Some error occurred.
            console.log(error)
        });
    }

    const githubSignOut = () => {
        return auth().signOut();
    }

    useEffect(() => {
        const unsubscribe = auth().onAuthStateChanged(user => {
            // setCurrentUser(user);
            setLoading(false);
        })
        return unsubscribe
    }, [])

    const value = {
        currentUser,
        githubSignIn,
        githubSignOut
    }

    return (
        <AuthContext.Provider value={value}>
            {!loading && children}
        </AuthContext.Provider>
    )
}

请帮助我解决这个问题。

0 个答案:

没有答案