I'm using Firebase Authentication to authenticate users on my website with two methods: email/password and Google OAuth login.
Whenever a user registers via the email/password method, I use the following code to save the information they entered in the Cloud Firestore document:
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 };
However, I don't know how to do the same thing when they log in with Google (I'm using the redirect method): I want to extract the user data from their Google account (generally, just their name , date of birth and their Gmail address). I've looked through the documentation for the getRedirectResult() method but I'm not sure how to proceed.
I need help with some basic code to pull this data after they register.
Thanks for any help as I've been going crazy with this for the past two days.
P粉8284636732024-04-03 12:38:45
Unable to obtain additional information from the OAuth provider in onAuthStateChanged
.
You must be logged in to your provider to obtain this information. So before you call Firebase. The results for the provider contain the scope value you requested in step 2: https://firebase.google.com/docs/auth/web/google-signin#handle_the_sign-in_flow_with_the_firebase_sdk