Tutorial de Firebase para Autenticación con Google y Base de Datos

Informática y Telecomunicaciones7,81 KB

Introducción a Firebase y Configuración Inicial



Gestión de Notas con Realtime Database

// Referencia a la base de datos donde se almacenarán las notas del usuario
const dbRef = firebase.database().ref(`notas/${user}`);

// Función para agregar una nueva nota
function agregarNota() {
// Obtiene el título y el contenido de la nota del usuario
const titulo = document.getElementById('title').value;
const nota = document.getElementById('note').value;

// Guarda la nota en la base de datos de Firebase
dbRef.push({
titulo: titulo,
nota: nota
});

// Escucha los cambios en la base de datos y actualiza la interfaz
dbRef.on('value', snapshot => {
// Obtiene el contenedor donde se mostrarán las notas
const notasContainer = document.getElementById('page-main-notes');
// Limpia el contenido anterior
notasContainer.innerHTML = 'Notas:
';

// Itera sobre todas las notas del usuario
snapshot.forEach(childSnapshot => {
// Obtiene los datos de la nota
const nota = childSnapshot.val();
// Agrega el título y el contenido de la nota al contenedor
notasContainer.innerHTML += `${nota.titulo}: ${nota.nota}
`;

// Evento clic para agregar una nueva nota
document.getElementById('button-add').addEventListener('click', agregarNota);

Autenticación con Google mediante Popups

POPUPS

// Configuración de Firebase
const firebaseConfig = {
apiKey: "TU_API_KEY",
authDomain: "TU_DOMINIO.firebaseapp.com",
projectId: "TU_PROYECTO_ID",
storageBucket: "TU_STORAGE_BUCKET.appspot.com",
messagingSenderId: "TU_SENDER_ID",
appId: "TU_APP_ID"
// Inicializa Firebase
firebase.initializeApp(firebaseConfig);

// Referencia al botón de inicio de sesión con Google
const loginButton = document.getElementById('button-login-google');

// Evento clic para iniciar sesión con Google
loginButton.addEventListener('click', () => {
// Crea una instancia del proveedor de autenticación de Google
const provider = new firebase.auth.GoogleAuthProvider();
// Inicia sesión con Google a través de un popup
firebase.auth().signInWithPopup(provider)
.then((result) => {
// El usuario ha iniciado sesión correctamente
const user = result.user;
// Muestra el correo electrónico y la foto de perfil del usuario en la página principal
mostrarInformacionUsuario(user);
.catch((error) => {
// Manejo de errores
console.error(error.message);
});
});

// Función para mostrar el correo electrónico y la foto de perfil del usuario
function mostrarInformacionUsuario(user) {
// Elemento donde se mostrará la información del usuario
const welcomeDiv = document.getElementById('page-main-welcome');
// Crea un elemento de imagen para mostrar la foto de perfil del usuario
const imgElement = document.createElement('img');
imgElement.src = user.photoURL;
imgElement.alt = 'Foto de perfil del usuario';
imgElement.classList.add('profile-image'); // Agrega la clase CSS al elemento img

// Crea un elemento de párrafo para mostrar el correo electrónico del usuario
const emailParagraph = document.createElement('p');
emailParagraph.textContent = `Correo electrónico: ${user.email}`;

// Agrega la foto de perfil y el correo electrónico del usuario al elemento de bienvenida
welcomeDiv.appendChild(imgElement);
welcomeDiv.appendChild(emailParagraph);
// Muestra la página principal
document.getElementById('page-login').style.display = 'none';
document.getElementById('page-main').style.display = 'block';
}

popups

Autenticación con Google mediante Redirección

REDIRECCION

// Referencia al botón de inicio de sesión con Google
const loginButton = document.getElementById('button-login-google');

// Evento clic para iniciar sesión con Google
loginButton.addEventListener('click', () => {
// Crea una instancia del proveedor de autenticación de Google
const provider = new firebase.auth.GoogleAuthProvider();
// Inicia sesión con Google a través de una redirección
firebase.auth().signInWithRedirect(provider);
});

// Verifica si el usuario ha iniciado sesión después de la redirección
firebase.auth().getRedirectResult().then((result) => {
if (result.user) {
// El usuario ha iniciado sesión correctamente
const user = result.user;
// Muestra el correo electrónico y la foto de perfil del usuario en la página principal
mostrarInformacionUsuario(user);
}
}).catch((error) => {
// Manejo de errores
console.error(error.message);
});

// Función para mostrar el correo electrónico y la foto de perfil del usuario
function mostrarInformacionUsuario(user) {
// Elemento donde se mostrará la información del usuario
const welcomeDiv = document.getElementById('page-main-welcome');
// Crea un elemento de imagen para mostrar la foto de perfil del usuario
const imgElement = document.createElement('img');
imgElement.src = user.photoURL;
imgElement.alt = 'Foto de perfil del usuario';
imgElement.classList.add('profile-image'); // Agrega la clase CSS al elemento img

// Crea un elemento de párrafo para mostrar el correo electrónico del usuario
const emailParagraph = document.createElement('p');
emailParagraph.textContent = `Correo electrónico: ${user.email}`;

// Agrega la foto de perfil y el correo electrónico del usuario al elemento de bienvenida
welcomeDiv.appendChild(imgElement);
welcomeDiv.appendChild(emailParagraph);
// Muestra la página principal
document.getElementById('page-login').style.display = 'none';
document.getElementById('page-main').style.display = 'block';
}

Estructura HTML del Proyecto

1






Notas











Añadir nota




Notas:

2




Iniciar sesión con Google









Descargar

PDF Word HTML