Firebase : Información del usuario
Cuando el usuario se autentifica con cualquiera de los métodos provistos por Firebase, se nos devuelve un array con la información a la que podemos acceder.
firebase.auth().onAuthStateChanged(function(user){ if(user){ // esta registrado } else { // no esta registrado } });
En ese ejemplo básico podemos consultar user para acceder a esa información:
user.displayName será null
o un string con el nombre del usuario
user.email será null
o o un string con su dirección de email
user.photoURL será null
o un string con la imagen de su perfil
user.providerId será un string con el nombre del proveedor (facebook.com, google.com, twitter.com, etc)
user.uid será un string con el identificador único de ese usuario
Algunos otros datos suelen ser irrelevantes:
user.emailVerified será true
si el email fue verificado o false
si no lo fue
user.isAnonymousserá true
si es un usuario anónimo o false
si no lo es
También podemos leer los datos usando user.providerData que será otro array conteniendo displayName, email, photoURL, providerId y uid.
En cualquier momento podemos acceder a los datos del usuario actual usando auth().currentUser.
Así como podemos leer los datos del usuario, también podemos modificarlos con updateProfile; esto es útil cuando alguno de ellos es nulo (no hay un nombre o una imagen). En ese caso, podemos agregarlo pero esto no modificará en absoluto la cuenta original con la que se haya autentificado.
var user = firebase.auth().currentUser; user.updateProfile({ displayName: nombre_usuario, photoURL: url_imagen }).then(function(){ alert('OK : PERFIL ACTUALIZADO'); }, function(error) { alert('ERROR en updateProfile'); });
No es necesario actualizar ambos datos, podemos cambiar sólo uno y el otro permanecerá tal como estaba:
user.updateProfile({ photoURL: url_imagen }).then(function(){ alert('OK : IMAGEN PERFIL ACTUALIZADA'); }, function(error) { alert('ERROR en updateProfile'); });
Existen funciones extras con las cuales pueden cambiarse datos más relevantes pero tienen restricciones de seguridad y deben usarse con mucho cuidado; por ejemplo, cambiar la contraseña o la dirección de email requieren que el usuario vuelva a autentificarse y confirmación. Aunque utilicemos esas funciones en nuestro sitio, son tareas que hará Firebase de modo seguro sin que podamos intervenir; de ese modo, se impide que alguien acceda a las cuentas que se utilizaron para autentificarse.
Lo mismo ocurre con funciones como delete que eliminará el registro del usuario; siempre se pedirá que el usuario vuelva a autentificarse antes de hacerlo, excepto en el caso de usuarios anónimos.