diff --git a/src/components/Firebase/Firebase.tsx b/src/components/Firebase/Firebase.tsx index 923c7c5fc..471c58c09 100644 --- a/src/components/Firebase/Firebase.tsx +++ b/src/components/Firebase/Firebase.tsx @@ -4762,9 +4762,34 @@ class Firebase { const data = doc.data() // Get first program name from user's programs array let programName = '' + // Priority 1: programs array (current format) if (data.programs && Array.isArray(data.programs) && data.programs.length > 0) { - const firstProgramId = data.programs[0].id || data.programs[0] - programName = programsMap.get(firstProgramId) || '' + const firstProgram = data.programs[0].id || data.programs[0] + // Try as ID first + if (programsMap.has(firstProgram)) { + programName = programsMap.get(firstProgram) || '' + } else { + // Fallback: check if it's a program name (legacy data inconsistency) + const programNames = Array.from(programsMap.values()) + if (programNames.includes(firstProgram)) { + programName = firstProgram + } + } + } + // Priority 2: programId string (legacy format) + else if (data.programId && typeof data.programId === 'string') { + programName = programsMap.get(data.programId) || '' + } + // Priority 3: program field (legacy - could be name or ID) + else if (data.program && typeof data.program === 'string') { + if (programsMap.has(data.program)) { + programName = programsMap.get(data.program) || '' + } else { + const isExistingName = Array.from(programsMap.values()).includes(data.program) + if (isExistingName) { + programName = data.program + } + } } result.push({ id: doc.id,