搜尋

首頁  >  問答  >  主體

使用getRedirectResult方法,如何提取Google OAuth用戶資料並將其儲存在Firebase Firestore中?

我使用 Firebase 驗證透過兩種方法對網站上的使用者進行身份驗證:電子郵件/密碼和 Google OAuth 登入。

每當使用者透過電子郵件/密碼方法註冊時,我都會使用以下程式碼來保存他們在 Cloud Firestore 文件中輸入的資訊:

createUserWithEmailAndPassword(auth, email, password)
        .then((userCredential) => {
            const user = userCredential.user;
            setDoc(doc(db,"accounts",user.uid), {
                user_id: user.uid,
                first_name: first_name,
                last_name: last_name,
                date_of_birth: dob,
                email: email,
                password: password,
                date_created: date
            })
        })
        .catch((error) => {
            //pass
        };

但是,當他們使用Google 登入時(我使用的是重定向方法),我不知道如何做同樣的事情:我想從他們的Google 帳戶中提取用戶資料(一般來說,只有他們的姓名、出生日期及其Gmail 地址)。我已經瀏覽了 getRedirectResult() 方法的文檔,但我不確定如何繼續。

我需要一些基本程式碼的幫助,以便在他們註冊後提取這些資料。

感謝任何幫助,因為過去兩天我一直在為此抓狂。

P粉215292716P粉215292716229 天前470

全部回覆(1)我來回復

  • P粉828463673

    P粉8284636732024-04-03 12:38:45

    無法從 onAuthStateChanged 中的 OAuth 提供者取得其他資訊。

    您必須在登入提供者後才能取得該資訊。所以在您致電 Firebase 之前。提供者的結果包含您在步驟 2 中要求的範圍值:https://firebase.google.com/docs/auth/web/google-signin#handle_the_sign-in_flow_with_the_firebase_sdk

    #

    回覆
    0
  • 取消回覆