Heim > Fragen und Antworten > Hauptteil
Ich verwende die Firebase-Authentifizierung, um Benutzer auf meiner Website mit zwei Methoden zu authentifizieren: E-Mail/Passwort und Google OAuth-Anmeldung.
Immer wenn sich ein Benutzer über die E-Mail-/Passwort-Methode anmeldet, verwende ich den folgenden Code, um die im Cloud Firestore-Dokument eingegebenen Informationen zu speichern:
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 };
Allerdings weiß ich nicht, wie ich dasselbe tun soll, wenn sie sich mit Google anmelden (ich verwende die Weiterleitungsmethode): Ich möchte Benutzerdaten aus ihrem Google-Konto extrahieren (im Allgemeinen nur ihren Namen, ihr Geburtsdatum usw.). ihre Gmail-Adresse). Ich habe die Dokumentation für die Methode getRedirectResult() durchgesehen, bin mir aber nicht sicher, wie ich vorgehen soll.
Ich benötige Hilfe bei einem grundlegenden Code, um diese Daten nach der Registrierung abzurufen.
Vielen Dank für jede Hilfe, da ich in den letzten zwei Tagen damit verrückt geworden bin.
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