Puedes usar Firebase Authentication para crear y usar cuentas anónimas temporales a fin de autenticar con Firebase. Estas cuentas se pueden usar para permitir que los usuarios que aún no se hayan registrado en la app trabajen con datos protegidos mediante reglas de seguridad. Si un usuario anónimo decide registrarse para usar la app, puedes vincular sus credenciales de acceso con la cuenta anónima, de manera que pueda continuar usando sus datos protegidos en sesiones futuras.
Antes de comenzar
- Agrega Firebase a tu proyecto de JavaScript.
- Si aún no conectaste la app al proyecto de Firebase, puedes hacerlo desde Firebase console.
- Habilita la autenticación anónima:
- En Firebase console, abre la sección Auth.
- En la página Métodos de acceso, habilita el método de acceso Anónimo.
Autentica con Firebase de forma anónima
Cuando un usuario que no accedió a su cuenta usa una función de la app que requiere autenticación en Firebase, sigue estos pasos para que el usuario acceda de forma anónima:
- Llama al método
signInAnonymously
de la siguiente forma:firebase.auth().signInAnonymously().catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // ... });
Aquí también puedes detectar y manejar errores. Para obtener una lista de códigos de error, consulta la documentación de referencia de la autenticación. - Si el método
signInAnonymously
se completa sin errores, se activará el observador registrado enonAuthStateChanged
y podrás obtener los datos de la cuenta del usuario anónimo del objetoUser
de la siguiente forma:firebase.auth().onAuthStateChanged(function(user) { if (user) { // User is signed in. var isAnonymous = user.isAnonymous; var uid = user.uid; // ... } else { // User is signed out. // ... } // ... });
Convierte una cuenta anónima en una permanente
Cuando un usuario anónimo se registra en la app, tal vez sea conveniente permitirle que continúe su trabajo con su cuenta nueva. Por ejemplo, puede que desees hacer que los elementos que el usuario agregó a su carrito de compras antes de registrarse estén disponibles en el carrito de compras de su cuenta nueva. Para ello, completa los siguientes pasos:
- Cuando se registre el usuario, completa el flujo de acceso del proveedor de autenticación del usuario hasta el paso anterior a llamar a uno de los métodos
Auth.signInWith
. Por ejemplo, obtén el token del ID de Google, el token de acceso a Facebook o la dirección de correo electrónico y contraseña del usuario. Obtén una
AuthCredential
para el proveedor de autenticación nuevo:Acceso con Google
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
Acceso con Facebook
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);
Acceso con correo electrónico y contraseña
var credential = firebase.auth.EmailAuthProvider.credential(email, password);
Pasa el objeto
AuthCredential
al métodolink
del usuario que accedió:firebase.auth().currentUser.linkWithCredential(credential).then(function(usercred) { var user = usercred.user; console.log("Anonymous account successfully upgraded", user); }, function(error) { console.log("Error upgrading anonymous account", error); });
Si la llamada a link
se realiza correctamente, la cuenta nueva del usuario puede acceder a los datos de Firebase de la cuenta anónima.
Pasos siguientes
Ahora que los usuarios pueden autenticarse con Firebase, puedes controlar su acceso a la información de la base de datos con las reglas de Firebase.