Estoy tratando de eliminar a un usuario de Auth y Firestore al hacer clic en el botón de una sola vez usando react-native-firebase. Mi problema en este momento es que no está eliminando el documento 'usuario' de Firestore. PERO, parece que estoy eliminando al usuario de Auth.
Además, cuando presiono el botón que llama a deleteUserFunc, recibo el error:
"null no es un objeto (evaluando '(0, _auth.default)().currentUser.uid')"
(UID tiene una identificación válida en la carga de la página)
const [_, setUser] = useContext(UserContext); const uid = auth().currentUser.uid; const deleteUserFunc = async () => { await deleteAccount(); } async function deleteAccount() { auth().currentUser.delete().then(() => { db.collection('users') .doc(user.uid) .delete() }).catch((error) => { console.log(error, "error") }).finally(() => setUser((state) => ({ ...state, isLoggedIn: false }))) }¿Cómo puedo eliminar de Firestore para este usuario, así como mejorar el código que he escrito?
Cualquier ayuda es apreciada - ¡gracias por su tiempo!
Supongo que configuraste tu variable de user para que apunte a auth.currentUser , que se vuelve null cuando eliminas al usuario actual. Por lo tanto, deberá invertir las operaciones (primero eliminar el documento, luego el usuario), o puede capturar el UID en una variable local antes de eliminar el usuario.
Este último se vería así:
async function deleteAccount() { const uid = auth().currentUser.uid; // 👈 auth().currentUser.delete().then(() => { db.collection('users') .doc(uid) // 👈 .delete() }).catch((error) => { console.log(error, "error") }).finally(() => setUser((state) => ({ ...state, isLoggedIn: false }))) }