Curso Firebase / Firestore desde cero 💪 (Parte I)
Curso Firebase / Firestore desde cero 💪
#1 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- Ir a página de firebase.
- Crear un nuevo proyecto y nombrarlo Usuarios.
- Clic en Authentication.
- Clic en Configurar el método de acceso.
- Clic en Correo electrónico/contraseña como proveedor.
- Clic en Habilitar y guardar.
- Volvemos al panel de administración haciendo clic en Descripción general.
- Clic en aplicación web.
- Seguimos los pasos para registrar la aplicación (Por ahora no habilitar hosting).
- Copiamos el código JavaScript.
- Seguir todas las instrucciones del asistente de Firebase.
- Crear una carpeta en C:\xampp\htdocs\firebase (o su equivalente según el servidor local que tengas instalado) para crear un proyecto vacio.
- Abrir proyecto con Visual Studio Code (o algún otro de tu preferencia).
- Crear archivo de nombre index.html y escribir:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Firebase</title>
</head>
<body>
<script src="app.js"></script>
</body>
</html>
- Crar archivo app.js.
#2 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- Copiar en la parte inferior de la etiqueta <body> antes de usar cualquier servicio de Firebase el código de JavaScript que habíamos copiado en la sección anterior.
- index.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prueba</title>
</head>
<body>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase.js"></script>
<!-- Abajo script erroneo proporcionado por Firebase y arriba el script corregido -->
<!--<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase-app.js"></script>-->
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAr0HTbV64vpe6vKsmV9wslKc5o0uto0ag",
authDomain: "prueba-33-97826.firebaseapp.com",
databaseURL: "https://prueba-33-97826.firebaseio.com",
projectId: "prueba-33-97826",
storageBucket: "prueba-33-97826.appspot.com",
messagingSenderId: "165991934861",
appId: "1:165991934861:web:d789ae12f48a9e0c822bc4",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<input id="email" type="email" placeholder="Ingresa email" />
<input id="contrasena" type="password" placeholder="Ingresa contraseña" />
<button onclick="registrar()">Enviar</button>
<script src="app.js"></script>
</body>
</html>
- app.js:
function registrar() {
var email = document.getElementById('email').value;
var password = document.getElementById('contrasena').value;
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
}
#3 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- index.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prueba</title>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase.js"></script>
<!-- Abajo script erroneo proporcionado por Firebase y arriba el script corregido -->
<!--<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase-app.js"></script>-->
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAr0HTbV64vpe6vKsmV9wslKc5o0uto0ag",
authDomain: "prueba-33-97826.firebaseapp.com",
databaseURL: "https://prueba-33-97826.firebaseio.com",
projectId: "prueba-33-97826",
storageBucket: "prueba-33-97826.appspot.com",
messagingSenderId: "165991934861",
appId: "1:165991934861:web:d789ae12f48a9e0c822bc4",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
</head>
<body>
<h4>Registro de usuarios</h4>
<input id="email" type="email" placeholder="Ingresa email" />
<input id="contrasena" type="password" placeholder="Ingresa contraseña" />
<button onclick="registrar()">Enviar</button>
<h4>Ingreso de usuarios</h4>
<input id="email2" type="email" placeholder="Ingresa email" />
<input id="contrasena2" type="password" placeholder="Ingresa contraseña" />
<button onclick="ingreso()">Acceder</button>
<div id="contenido"></div>
<script src="app.js"></script>
</body>
</html>
- app.js:
function registrar() {
var email = document.getElementById('email').value;
var password = document.getElementById('contrasena').value;
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
}
function ingreso() {
var email = document.getElementById('email2').value;
var password = document.getElementById('contrasena2').value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
console.log(errorCode);
console.log(errorMessage);
});
}
function observador() {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
console.log('Si existe');
aparece();
// User is signed in.
var displayName = user.displayName;
var email = user.email;
console.log(email);
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
// ...
} else {
// User is signed out.
console.log('No existe');
// ...
}
});
}
function aparece(){
var contenido = document.getElementById('contenido');
contenido.innerHTML = "Solo lo ve usuario activo";
}
observador();
#4 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- index.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prueba</title>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase.js"></script>
<!-- Abajo script erroneo proporcionado por Firebase y arriba el script corregido -->
<!--<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase-app.js"></script>-->
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAr0HTbV64vpe6vKsmV9wslKc5o0uto0ag",
authDomain: "prueba-33-97826.firebaseapp.com",
databaseURL: "https://prueba-33-97826.firebaseio.com",
projectId: "prueba-33-97826",
storageBucket: "prueba-33-97826.appspot.com",
messagingSenderId: "165991934861",
appId: "1:165991934861:web:d789ae12f48a9e0c822bc4",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
</head>
<body>
<h4>Registro de usuarios</h4>
<input id="email" type="email" placeholder="Ingresa email" />
<input id="contrasena" type="password" placeholder="Ingresa contraseña" />
<button onclick="registrar()">Enviar</button>
<h4>Ingreso de usuarios</h4>
<input id="email2" type="email" placeholder="Ingresa email" />
<input id="contrasena2" type="password" placeholder="Ingresa contraseña" />
<button onclick="ingreso()">Acceder</button>
<div id="contenido"></div>
<script src="app.js"></script>
</body>
</html>
- app.js:
function registrar() {
var email = document.getElementById('email').value;
var password = document.getElementById('contrasena').value;
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
}
function ingreso() {
var email = document.getElementById('email2').value;
var password = document.getElementById('contrasena2').value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
console.log(errorCode);
console.log(errorMessage);
});
}
function observador() {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
console.log('Si existe');
aparece();
// User is signed in.
var displayName = user.displayName;
var email = user.email;
console.log(email);
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
// ...
} else {
// User is signed out.
console.log('No existe');
// ...
}
});
}
function aparece(){
var contenido = document.getElementById('contenido');
contenido.innerHTML = `
<p>Bienvenido</p>
<button onclick="cerrar()">Cerrar sesión</button>
`;
}
function cerrar(){
firebase.auth().signOut()
.then(function(){
console.log('Saliendo...');
})
.catch(function(error){
console.log(error);
});
}
observador();
#5 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- Ir a Firebase.
- Entrar al proyecto e ir a Desarrollo, Authentication y finalmente Templates.
- Cambiar el idioma a español.
- Modificar plantilla del correo que le llegará al usuario cuidadosamente.
- app.js:
function registrar() {
var email = document.getElementById('email').value;
var password = document.getElementById('contrasena').value;
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(){
verificar()
})
.catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
}
function ingreso() {
var email = document.getElementById('email2').value;
var password = document.getElementById('contrasena2').value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
console.log(errorCode);
console.log(errorMessage);
});
}
function observador() {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
console.log('Si existe');
aparece(user);
// User is signed in.
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
console.log('**************');
console.log(emailVerified);
console.log('**************');
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
// ...
} else {
// User is signed out.
console.log('No existe');
// ...
}
});
}
function aparece(user){
var user = user;
var contenido = document.getElementById('contenido');
if(user.emailVerified){
contenido.innerHTML = `
<p>Bienvenido</p>
<button onclick="cerrar()">Cerrar sesión</button>
`;
}
}
function cerrar(){
firebase.auth().signOut()
.then(function(){
console.log('Saliendo...');
})
.catch(function(error){
console.log(error);
});
}
function verificar(){
var user = firebase.auth().currentUser;
user.sendEmailVerification().then(function() {
// Email sent.
console.log('Enviando correo...');
}).catch(function(error) {
// An error happened.
console.log('Error al envíar correo...');
});
}
observador();
#6 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- Incorporamos los CDN de Bootstrap en el archivo index.html.
- index.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prueba</title>
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<!-- JS, Popper.js, and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase.js"></script>
<!-- Abajo script erroneo proporcionado por Firebase y arriba el script corregido -->
<!--<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase-app.js"></script>-->
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAr0HTbV64vpe6vKsmV9wslKc5o0uto0ag",
authDomain: "prueba-33-97826.firebaseapp.com",
databaseURL: "https://prueba-33-97826.firebaseio.com",
projectId: "prueba-33-97826",
storageBucket: "prueba-33-97826.appspot.com",
messagingSenderId: "165991934861",
appId: "1:165991934861:web:d789ae12f48a9e0c822bc4",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
</head>
<body>
<div class="contaniner mt-3">
<nav class="navbar navbar-dark bg-primary">
<a class="navbar-brand">Navbar</a>
<div class="form-inline">
<input id="email" type="email" placeholder="Ingresa email" class="form-control form-control-sm mr-sm-2" />
<input id="contrasena" type="password" placeholder="Ingresa contraseña" class="form-control form-control-sm mr-sm-2" />
<button class="btn btn-dark my-2 my-sm-0 btn-sm" onclick="registrar()">Acceder</button>
<button class="btn btn-danger my-2 my-sm-0 btn-sm ml-2">Registrar</button>
</div>
</nav>
</div>
<h4>Registro de usuarios</h4>
<button onclick="registrar()">Enviar</button>
<h4>Ingreso de usuarios</h4>
<input id="email2" type="email" placeholder="Ingresa email" />
<input id="contrasena2" type="password" placeholder="Ingresa contraseña" />
<button onclick="ingreso()">Acceder</button>
<div id="contenido"></div>
<script src="app.js"></script>
</body>
</html>
#7 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- index.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Prueba</title>
<!-- CSS only -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<!-- JS, Popper.js, and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase.js"></script>
<!-- Abajo script erroneo proporcionado por Firebase y arriba el script corregido -->
<!--<script src="https://www.gstatic.com/firebasejs/7.17.1/firebase-app.js"></script>-->
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyAr0HTbV64vpe6vKsmV9wslKc5o0uto0ag",
authDomain: "prueba-33-97826.firebaseapp.com",
databaseURL: "https://prueba-33-97826.firebaseio.com",
projectId: "prueba-33-97826",
storageBucket: "prueba-33-97826.appspot.com",
messagingSenderId: "165991934861",
appId: "1:165991934861:web:d789ae12f48a9e0c822bc4",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
</head>
<body>
<div class="contaniner mt-3">
<nav class="navbar navbar-dark bg-primary">
<a class="navbar-brand">Navbar</a>
<div class="form-inline">
<input id="email2" type="email" placeholder="Ingresa email" class="form-control form-control-sm mr-sm-2" />
<input id="contrasena2" type="password" placeholder="Ingresa contraseña" class="form-control form-control-sm mr-sm-2" />
<button class="btn btn-dark my-2 my-sm-0 btn-sm" onclick="ingreso()">Acceder</button>
<button class="btn btn-danger my-2 my-sm-0 btn-sm ml-2" data-toggle="modal" data-target="#exampleModal">Registrar</button>
</div>
</nav>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Formulario de registro</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<input id="email" type="email" placeholder="Ingresa email" class="form-control"/>
<div class="mt-2"></div>
<input id="contrasena" type="password" placeholder="Ingresa contraseña" class="form-control" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary" onclick="registrar()">Guardar</button>
</div>
</div>
</div>
</div>
<div id="contenido"></div>
<script src="app.js"></script>
</body>
</html>
#8 Firebase y Bootstrap 4 - Registro de usuarios con email y contraseña - Aprende a crear un Login
Apuntes:
- app.js:
function registrar() {
var email = document.getElementById('email').value;
var password = document.getElementById('contrasena').value;
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(){
verificar()
})
.catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorCode);
console.log(errorMessage);
});
}
function ingreso() {
var email = document.getElementById('email2').value;
var password = document.getElementById('contrasena2').value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
console.log(errorCode);
console.log(errorMessage);
});
}
function observador() {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
console.log('Si existe');
aparece(user);
// User is signed in.
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
console.log('**************');
console.log(emailVerified);
console.log('**************');
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
// ...
} else {
// User is signed out.
console.log('No existe');
contenido.innerHTML = ``;
// ...
}
});
}
function aparece(user){
var user = user;
var contenido = document.getElementById('contenido');
if(user.emailVerified){
contenido.innerHTML = `
<div class="container mt-5">
<div class="alert alert-success" role="alert">
<h4 class="alert-heading">Bienvenido ${user.email}!</h4>
<p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
<hr>
<p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
</div>
<button onclick="cerrar()" class="btn btn-danger">Cerrar sesión</button>
</div>
`;
}
}
function cerrar(){
firebase.auth().signOut()
.then(function(){
console.log('Saliendo...');
})
.catch(function(error){
console.log(error);
});
}
function verificar(){
var user = firebase.auth().currentUser;
user.sendEmailVerification().then(function() {
// Email sent.
console.log('Enviando correo...');
}).catch(function(error) {
// An error happened.
console.log('Error al envíar correo...');
});
}
observador();
Comentarios
Publicar un comentario