Lashtw commited on
Commit
251d5d0
·
verified ·
1 Parent(s): ac12229

Upload 9 files

Browse files
Files changed (1) hide show
  1. src/services/classroom.js +22 -0
src/services/classroom.js CHANGED
@@ -480,3 +480,25 @@ export async function getUser(userId) {
480
  const snap = await getDoc(userRef);
481
  return snap.exists() ? snap.data() : null;
482
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
  const snap = await getDoc(userRef);
481
  return snap.exists() ? snap.data() : null;
482
  }
483
+
484
+ /**
485
+ * Subscribes to a single user's progress for real-time updates
486
+ * @param {string} userId
487
+ * @param {Function} callback (progressMap) => void
488
+ * @returns {Function} unsubscribe
489
+ */
490
+ export function subscribeToUserProgress(userId, callback) {
491
+ const q = query(
492
+ collection(db, PROGRESS_COLLECTION),
493
+ where("userId", "==", userId)
494
+ );
495
+
496
+ return onSnapshot(q, (snapshot) => {
497
+ const progressMap = {};
498
+ snapshot.forEach(doc => {
499
+ const data = doc.data();
500
+ progressMap[data.challengeId] = data;
501
+ });
502
+ callback(progressMap);
503
+ });
504
+ }