Soy nuevo en reaccionar y base de fuego y estaba tratando de crear un documento de almacenamiento de fuego solo durante la creación del usuario.
Funciona bien en el proveedor local, ya que iniciar sesión y registrarse son dos cosas diferentes, pero cuando se trata de Google o Auth, ambas opciones usan la misma función.
Entonces, ¿cómo creo mi documnet inicial durante la creación del usuario a través de google o Auth, ya que solo restablece todo mi documento cuando cierro la sesión y vuelvo a iniciar sesión?
función googleauth
function googleAuth(provider) { return firebase .auth() .signInWithPopup(provider) .then(async function createUserDb(userCredentials) { await setDoc(doc(db, "users", userCredentials.user.uid), {myList: []},{ merge: true }) }) }funciones de registro e inicio de sesión
function signUp(email, password) { return auth.createUserWithEmailAndPassword(email, password).then( async function createUserDb(userCredentials) { console.log(userCredentials.user.uid); await setDoc(doc(db, "users", userCredentials.user.uid), {myList: []}) }) } function signIn(email, password) { return auth.signInWithEmailAndPassword(email, password) }mi colección de usuarios de Firestore cuando se crea un nuevo usuario (usuario de autenticación de Google aquí)
debería guardar los datos incluso después de iniciar sesión (usuario de autenticación local aquí)
después de revisar algunas publicaciones, encontré el método .additionalUserInfo.isNewUser que verifica si el usuario ha creado una nueva cuenta o si ya es un usuario que solucionó mi problema.
Gracias por cualquier ayuda que ustedes brindaron.
function googleAuth(provider) { return firebase .auth() .signInWithPopup(provider) .then(async function createUserDb(userCredentials) { if(userCredentials.additionalUserInfo.isNewUser) { await setDoc(doc(db, "users", userCredentials.user.uid), {myList: []},{ merge: true }) } }) }