diff --git a/App.js b/App.js
index 99f5729ea73051786f5f0ee75b4fb644529ddefc..3df11add71ac3ef9dd916899ec9294418329873d 100644
--- a/App.js
+++ b/App.js
@@ -1,26 +1,61 @@
-import React, { useState } from 'react';
+import React, { useState, useEffect } from 'react';
 import { View, TextInput, Button, FlatList, Text, StyleSheet, TouchableOpacity } from 'react-native';
+import { db } from './firebaseConfig';
+import { collection, addDoc, getDocs, updateDoc, doc, deleteDoc } from 'firebase/firestore';
+
 
 export default function App() {
   const [task, setTask] = useState('');
   const [tasks, setTasks] = useState([]);
   const [editingId, setEditingId] = useState(null);
 
-  const addOrUpdateTask = () => {
+  useEffect(() => {
+    fetchTasks();
+  }, []);
+  
+
+  const fetchTasks = async () => {
+    try {
+      const querySnapshot = await getDocs(collection(db, 'tasks'));
+      const loadedTasks = querySnapshot.docs.map(doc => ({
+        id: doc.id,
+        text: doc.data().text
+      }));
+      setTasks(loadedTasks);
+      console.log("Tasks loaded:", loadedTasks.length);
+    } catch (error) {
+      console.error("Error fetching tasks:", error);
+    }
+  };
+  
+
+  const addOrUpdateTask = async () => {
     if (task.trim()) {
-      if (editingId) {
-        // Update mode
-        setTasks(tasks.map(t => t.id === editingId ? { ...t, text: task } : t));
-        setEditingId(null);
-      } else {
-        // Add mode
-        setTasks([...tasks, { id: Date.now().toString(), text: task }]);
+      try {
+        if (editingId) {
+          // Update mode
+          const taskRef = doc(db, 'tasks', editingId);
+          await updateDoc(taskRef, { text: task });
+          console.log("Task updated:", editingId);
+          setEditingId(null);
+        } else {
+          // Add mode
+          const docRef = await addDoc(collection(db, 'tasks'), { text: task });
+          console.log("Task added with ID:", docRef.id);
+        }
+  
+        await fetchTasks(); // always refetch
+        setTask('');
+      } catch (error) {
+        console.error("Error adding/updating task:", error);
       }
-      setTask('');
     }
   };
+  
+  
 
-  const removeTask = (id) => {
+  const removeTask = async (id) => {
+    await deleteDoc(doc(db, 'tasks', id));
     setTasks(tasks.filter((t) => t.id !== id));
     if (editingId === id) {
       setTask('');
diff --git a/firebaseConfig.js b/firebaseConfig.js
new file mode 100644
index 0000000000000000000000000000000000000000..81c9f9bfcbf2f9a4c7c21f8e042a3bcbda8f7bdd
--- /dev/null
+++ b/firebaseConfig.js
@@ -0,0 +1,19 @@
+// firebaseConfig.js
+import { initializeApp } from 'firebase/app';
+import { getFirestore } from 'firebase/firestore';
+
+const firebaseConfig = {
+  apiKey: "AIzaSyBhYbz1Gb2nGdgOxZwcbSbxDUSVFD-bYhw",
+  authDomain: "expotodoapp-692af.firebaseapp.com",
+  projectId: "expotodoapp-692af",
+  storageBucket: "expotodoapp-692af.firebasestorage.app",
+  messagingSenderId: "948893841016",
+  appId: "1:948893841016:web:e91f5ddbd2c0121e839f8d",
+  measurementId: "G-4V1EBCR32D"
+};
+
+// Initialize Firebase app
+const app = initializeApp(firebaseConfig);
+
+// Export Firestore instance
+export const db = getFirestore(app);