
En esta parte, mejoraremos aún más nuestra app de tareas de React Native con:
✅ Notificaciones push con Expo Notifications.
✅ Sincronización en la nube con Firebase Firestore.
Requisitos previos
- Haber completado la segunda parte del tutorial: https://devcodelight.com/wp-admin/post.php?post=9225
- Tener una cuenta de Firebase y un proyecto creado.
1. Configurar Notificaciones Push
Las notificaciones push permiten recordar tareas importantes. Para ello, usaremos Expo Notifications.
1.1 Instalar dependencias
Ejecutamos:
npx expo install expo-notifications
Además, si usamos un dispositivo físico en Android, instalamos Firebase Cloud Messaging (FCM):
npx expo install expo-modules-core expo-device expo-constants
1.2 Configurar notificaciones
En src/utils/notifications.js
, creamos la lógica para manejar notificaciones:
import * as Notifications from 'expo-notifications'; import * as Device from 'expo-device'; import Constants from 'expo-constants'; export async function registerForPushNotificationsAsync() { let token; if (Device.isDevice) { const { status: existingStatus } = await Notifications.getPermissionsAsync(); let finalStatus = existingStatus; if (existingStatus !== 'granted') { const { status } = await Notifications.requestPermissionsAsync(); finalStatus = status; } if (finalStatus !== 'granted') { alert('¡Permiso para recibir notificaciones denegado!'); return; } token = (await Notifications.getExpoPushTokenAsync()).data; } else { alert('Las notificaciones solo funcionan en dispositivos físicos.'); } return token; }
1.3 Implementar notificaciones en App.js
import { useEffect } from 'react'; import { registerForPushNotificationsAsync } from './src/utils/notifications'; export default function App() { useEffect(() => { registerForPushNotificationsAsync().then(token => { console.log('Token de notificación:', token); }); }, []); return <HomeScreen />; }
1.4 Probar Notificaciones
Para probarlas, agregamos este código en HomeScreen.js
:
import * as Notifications from 'expo-notifications'; const scheduleNotification = async () => { await Notifications.scheduleNotificationAsync({ content: { title: '📌 Recordatorio', body: 'No olvides revisar tus tareas!', }, trigger: { seconds: 5 }, // Se enviará en 5 segundos }); };
Y agregamos un botón:
<Button title="Probar Notificación" onPress={scheduleNotification} />
2. Configurar Firebase Firestore
Firestore nos permitirá sincronizar las tareas en la nube para acceder a ellas desde varios dispositivos.
2.1 Instalar Firebase
npm install firebase
2.2 Configurar Firebase
Creamos src/utils/firebaseConfig.js
:
import { initializeApp } from 'firebase/app'; import { getFirestore, collection, addDoc, getDocs, deleteDoc, doc } from 'firebase/firestore'; const firebaseConfig = { apiKey: 'TU_API_KEY', authDomain: 'TU_AUTH_DOMAIN', projectId: 'TU_PROJECT_ID', storageBucket: 'TU_STORAGE_BUCKET', messagingSenderId: 'TU_MESSAGING_SENDER_ID', appId: 'TU_APP_ID', }; const app = initializeApp(firebaseConfig); const db = getFirestore(app); export { db, collection, addDoc, getDocs, deleteDoc, doc };
2.3 Modificar database.js
para usar Firebase
import { db, collection, addDoc, getDocs, deleteDoc, doc } from './firebaseConfig'; const tasksCollection = collection(db, 'tasks'); export const getTasksFromFirebase = async (callback) => { const snapshot = await getDocs(tasksCollection); const tasks = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() })); callback(tasks); }; export const addTaskToFirebase = async (task, callback) => { await addDoc(tasksCollection, { text: task }); getTasksFromFirebase(callback); }; export const deleteTaskFromFirebase = async (id, callback) => { await deleteDoc(doc(tasksCollection, id)); getTasksFromFirebase(callback); };
2.4 Modificar HomeScreen.js
import { getTasksFromFirebase, addTaskToFirebase, deleteTaskFromFirebase } from '../utils/database'; useEffect(() => { getTasksFromFirebase(setTasks); }, []); const handleAddTask = () => { if (task.trim()) { addTaskToFirebase(task, setTasks); setTask(''); } }; const handleDeleteTask = (id) => { deleteTaskFromFirebase(id, setTasks); };
3. Probar la App
Ejecutamos:
npx expo start
✔️ Ahora las tareas se sincronizan con Firebase y podemos recibir notificaciones push.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.