Estoy usando la autenticación de Firebase con AngularFire2 en un proyecto Ionic-Angular. Necesito poder volver a autenticar a mis usuarios cuando sea necesario, y parece que la única forma de hacerlo es obteniendo las credenciales del usuario, que solo se pueden obtener a través de firebase.auth.EmailAuthProvider , un objeto que no forma parte de AngularFire , pero solo de firebase en sí.
Estoy usando firebase v8 para esto, en el que el objeto EmailAuthProvider debe encontrarse en firebase.default.auth.EmailAuthProvider . Sin embargo, entiendo que firebase.default.auth no está definido y, por lo tanto, no puedo acceder a EmailAuthProvider . La única solución que encontré es volver a firebase v7, en el que se puede acceder con éxito a este último a través firebase.auth.EmailAuthProvider . Todavía no puedo actualizar a firebase v9 por otros problemas de compatibilidad, ni quiero mantener v7 ya que me da muchas vulnerabilidades altas y medias.
EDITAR
Obtengo las credenciales de esta manera:
import * as firebase from "firebase/app"; ... firebase.default.auth.EmailAuthProvider.credential(email, password)Y me sale el siguiente error:
Uncaught TypeError: Cannot read properties of undefined (reading 'EmailAuthProvider') Mi archivo package.json tiene "@angular/fire": "^6.1.5" y "firebase": "^8.10.0"
TLDR
En Firebase v8, ¿cómo acceder a EmailAuthProvider o, de manera más general, cómo volver a autenticar a un usuario?
Intente cambiar sus importaciones como se muestra a continuación:
import firebase from "firebase/app"; import "firebase/auth" // <-- make sure you have auth importedLuego acceda a EmailAuthProvider así:
firebase.auth.EmailAuthProvider.credential(email, password)