Skip to content

Commit d435cd8

Browse files
committed
#74 ensuring speaker id is a valid key when trying to store/access it
1 parent 71753f3 commit d435cd8

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

cloud/functions/src/functions/firestore/services/event-utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {AllInOneTalkStats} from "../../../../../../shared/event-stats";
99
import {getEventTalks} from "./talk-utils";
1010
import {detailedTalksToSpeakersLineup} from "../../../models/Event";
1111
import {DetailedTalk} from "../../../../../../shared/daily-schedule.firestore";
12+
import {toValidFirebaseKey} from "../../../../../../shared/utilities/firebase.utils";
1213

1314

1415
export async function getAllEventsDocs(opts: { includePrivateSpaces: boolean } = { includePrivateSpaces: false }) {
@@ -58,7 +59,7 @@ export async function createAllSpeakers(eventTalks: DetailedTalk[], maybeSpaceTo
5859

5960
// delete all then re-create all
6061
await Promise.all(existingSpeakerDocs.map(speakerDoc => speakerDoc.delete()))
61-
await Promise.all(lineupSpeakers.map(lineupSpeaker => db.doc(`${eventRootPath}/speakers/${lineupSpeaker.id}`).set(lineupSpeaker)))
62+
await Promise.all(lineupSpeakers.map(lineupSpeaker => db.doc(`${eventRootPath}/speakers/${toValidFirebaseKey(lineupSpeaker.id)}`).set(lineupSpeaker)))
6263

6364
return { createdSpeakers: lineupSpeakers }
6465
}

mobile/src/state/useEventSpeakers.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {checkCache} from "@/services/Cachings";
1313
import {Temporal} from "temporal-polyfill";
1414
import {PERF_LOGGER} from "@/services/Logger";
1515
import {loadSpeakerUrl} from "@/state/useEventTalk";
16+
import {toValidFirebaseKey} from "../../../shared/utilities/firebase.utils";
1617

1718
export function useLineupSpeakers(eventDescriptorRef: Ref<VoxxrinConferenceDescriptor|undefined>, searchTermsRef: Ref<string|undefined>) {
1819

@@ -88,7 +89,7 @@ export function eventLineupSpeakerDocument(eventDescriptor: VoxxrinConferenceDes
8889
}
8990

9091
return doc(db,
91-
`${resolvedEventFirestorePath(eventDescriptor.id.value, eventDescriptor.spaceToken?.value)}/speakers/${speakerId.value}`
92+
`${resolvedEventFirestorePath(eventDescriptor.id.value, eventDescriptor.spaceToken?.value)}/speakers/${toValidFirebaseKey(speakerId.value)}`
9293
) as DocumentReference<LineupSpeaker>;
9394
}
9495

0 commit comments

Comments
 (0)