diff --git a/functions/src/bills/search.ts b/functions/src/bills/search.ts index cfa7c5c09..3658351f3 100644 --- a/functions/src/bills/search.ts +++ b/functions/src/bills/search.ts @@ -2,6 +2,7 @@ import { isString } from "lodash" import { db } from "../firebase" import { createSearchIndexer } from "../search" import { Bill, BillTopic } from "./types" +import { logger } from "firebase-functions" export const { syncToSearchIndex: syncBillToSearchIndex, @@ -42,7 +43,7 @@ export const { convert: data => { const validation = Bill.validateWithDefaults(data) if (!validation.success) { - console.error(data, validation.message, validation.details) + logger.error(data, validation.message, validation.details) } const bill = Bill.checkWithDefaults(data) diff --git a/functions/src/notifications/deliverNotifications.ts b/functions/src/notifications/deliverNotifications.ts index 75cdba7e3..f0b9506bb 100644 --- a/functions/src/notifications/deliverNotifications.ts +++ b/functions/src/notifications/deliverNotifications.ts @@ -37,7 +37,7 @@ const getVerifiedUserEmail = async (uid: string) => { return null } } catch (error) { - console.error(`Error getting user email for UID ${uid}:`, error) + functions.logger.error(`Error getting user email for UID ${uid}:`, error) return null } } @@ -191,7 +191,7 @@ export const buildDigestData = async ( bill.opposeCount++ break default: - console.error(`Unknown position: ${notification.position}`) + functions.logger.error(`Unknown position: ${notification.position}`) break } } else { @@ -241,7 +241,7 @@ export const buildDigestData = async ( bq.opposeCount++ break default: - console.error(`Unknown position: ${notification.position}`) + functions.logger.error(`Unknown position: ${notification.position}`) break } } else { diff --git a/functions/src/notifications/helpers.ts b/functions/src/notifications/helpers.ts index 12a46e779..d267119e0 100644 --- a/functions/src/notifications/helpers.ts +++ b/functions/src/notifications/helpers.ts @@ -11,6 +11,7 @@ import { } from "date-fns" import { JSDOM } from "jsdom" +import { logger } from "firebase-functions" export const getNextDigestAt = (notificationFrequency: Frequency) => { const now = startOfDay(new Date()) @@ -31,7 +32,7 @@ export const getNextDigestAt = (notificationFrequency: Frequency) => { nextDigestAt = null break default: - console.error(`Unknown notification frequency: ${notificationFrequency}`) + logger.error(`Unknown notification frequency: ${notificationFrequency}`) break } diff --git a/functions/src/notifications/populateBallotQuestionNotificationEvents.ts b/functions/src/notifications/populateBallotQuestionNotificationEvents.ts index fe15b11ec..a11f0d1db 100644 --- a/functions/src/notifications/populateBallotQuestionNotificationEvents.ts +++ b/functions/src/notifications/populateBallotQuestionNotificationEvents.ts @@ -6,7 +6,7 @@ export const populateBallotQuestionNotificationEventsHandler = async ( context: functions.EventContext ) => { if (!snapshot.after.exists) { - console.error("New snapshot does not exist") + functions.logger.error("New snapshot does not exist") return } diff --git a/functions/src/notifications/populateBillHistoryNotificationEvents.ts b/functions/src/notifications/populateBillHistoryNotificationEvents.ts index 14d27d44d..e021e629c 100644 --- a/functions/src/notifications/populateBillHistoryNotificationEvents.ts +++ b/functions/src/notifications/populateBillHistoryNotificationEvents.ts @@ -17,7 +17,7 @@ export const populateBillHistoryNotificationEvents = functions.firestore .document("/generalCourts/{court}/bills/{billId}") .onWrite(async (snapshot, context) => { if (!snapshot.after.exists) { - console.error("New snapshot does not exist") + functions.logger.error("New snapshot does not exist") return } diff --git a/functions/src/notifications/populateTestimonySubmissionNotificationEvents.ts b/functions/src/notifications/populateTestimonySubmissionNotificationEvents.ts index 7680c0a16..99d0fd640 100644 --- a/functions/src/notifications/populateTestimonySubmissionNotificationEvents.ts +++ b/functions/src/notifications/populateTestimonySubmissionNotificationEvents.ts @@ -17,7 +17,7 @@ export const populateTestimonySubmissionNotificationEvents = functions.firestore .document("/users/{userId}/publishedTestimony/{testimonyId}") .onWrite(async (snapshot, context) => { if (!snapshot.after.exists) { - console.error("New snapshot does not exist") + functions.logger.error("New snapshot does not exist") return } diff --git a/functions/src/notifications/publishNotifications.ts b/functions/src/notifications/publishNotifications.ts index 27724bfae..b00e3853a 100644 --- a/functions/src/notifications/publishNotifications.ts +++ b/functions/src/notifications/publishNotifications.ts @@ -112,7 +112,7 @@ export const publishNotifications = functions.firestore | undefined if (!topic) { - console.error("Invalid topic data:", topic) + functions.logger.error("Invalid topic data:", topic) return } diff --git a/functions/src/search/SearchIndexer.ts b/functions/src/search/SearchIndexer.ts index b1488edba..9af998398 100644 --- a/functions/src/search/SearchIndexer.ts +++ b/functions/src/search/SearchIndexer.ts @@ -1,4 +1,4 @@ -import { Change } from "firebase-functions" +import { Change, logger } from "firebase-functions" import { isEqual, last } from "lodash" import hash from "object-hash" import Collection from "typesense/lib/Typesense/Collection" @@ -43,7 +43,7 @@ export class SearchIndexer { try { return this.config.filter(data) } catch (error) { - console.error("Filter function threw", error) + logger.error("Filter function threw", error) return false } } @@ -141,7 +141,7 @@ export class SearchIndexer { const doc = convert(data) acc.push(doc) } catch (error: any) { - console.error(`Failed to convert document: ${error.message}`) + logger.error(`Failed to convert document: ${error.message}`) } return acc }, [] as any[]) @@ -151,7 +151,7 @@ export class SearchIndexer { } catch (e) { if (e instanceof ImportError) { const results = e.importResults as unknown as ImportResponse[] - console.error( + logger.error( results .map( r => diff --git a/functions/src/subscriptions/removeTopicSubscription.ts b/functions/src/subscriptions/removeTopicSubscription.ts index 3452a5cc2..9e5989801 100644 --- a/functions/src/subscriptions/removeTopicSubscription.ts +++ b/functions/src/subscriptions/removeTopicSubscription.ts @@ -1,6 +1,7 @@ import { Database } from "../types" import { UserRecord } from "firebase-admin/auth" import { TopicSubscription } from "./types" +import { logger } from "firebase-functions" export const removeTopicSubscription = async ({ user, @@ -21,6 +22,6 @@ export const removeTopicSubscription = async ({ .doc(topicName) .delete() } catch (error: any) { - console.error("Error removing topic subscription: ", error) + logger.error("Error removing topic subscription: ", error) } } diff --git a/functions/src/subscriptions/subscribeToTestimonyTopic.ts b/functions/src/subscriptions/subscribeToTestimonyTopic.ts index f22238444..f3570f233 100644 --- a/functions/src/subscriptions/subscribeToTestimonyTopic.ts +++ b/functions/src/subscriptions/subscribeToTestimonyTopic.ts @@ -2,6 +2,7 @@ import { Database } from "../types" import { UserRecord } from "firebase-admin/auth" import { TopicSubscription } from "./types" import { addTopicSubscription } from "./addTopicSubscription" +import { logger } from "firebase-functions" export const subscribeToTestimonyTopic = async ({ user, @@ -40,6 +41,6 @@ export const subscribeToTestimonyTopic = async ({ console.log("Debug: Subscription added successfully") } catch (error) { // Debug: Log any errors - console.error("Debug: Error in subscribeToOrgTopic", error) + logger.error("Debug: Error in subscribeToTestimonyTopic", error) } } diff --git a/functions/src/subscriptions/unfollowBill.ts b/functions/src/subscriptions/unfollowBill.ts index 9e33d6bfc..23b0224f9 100644 --- a/functions/src/subscriptions/unfollowBill.ts +++ b/functions/src/subscriptions/unfollowBill.ts @@ -20,7 +20,7 @@ export const unfollowBill = functions.https.onCall(async (data, context) => { await unsubscribeToBillTopic({ user, billLookup, db }) return { status: "success", message: "Bill subscription removed" } } catch (error: any) { - console.error( + functions.logger.error( `Error in unfollowBill for user ${context.auth.uid}:`, error.stack ) diff --git a/functions/src/subscriptions/unsubscribeToBillTopic.ts b/functions/src/subscriptions/unsubscribeToBillTopic.ts index 9b92130dc..0aeea807b 100644 --- a/functions/src/subscriptions/unsubscribeToBillTopic.ts +++ b/functions/src/subscriptions/unsubscribeToBillTopic.ts @@ -2,6 +2,7 @@ import { Database } from "../types" import { UserRecord } from "firebase-admin/auth" import { TopicSubscription } from "./types" import { removeTopicSubscription } from "./removeTopicSubscription" +import { logger } from "firebase-functions" export const unsubscribeToBillTopic = async ({ user, @@ -28,7 +29,7 @@ export const unsubscribeToBillTopic = async ({ await removeTopicSubscription({ user, subscriptionData, db }) } catch (error) { - console.error("Error in unsubscribeToBillTopic:", error) + logger.error("Error in unsubscribeToBillTopic:", error) throw error } } diff --git a/functions/src/subscriptions/unsubscribeToTestimonyTopic.ts b/functions/src/subscriptions/unsubscribeToTestimonyTopic.ts index 5bef73ba6..afc73cb05 100644 --- a/functions/src/subscriptions/unsubscribeToTestimonyTopic.ts +++ b/functions/src/subscriptions/unsubscribeToTestimonyTopic.ts @@ -2,6 +2,7 @@ import { Database } from "../types" import { UserRecord } from "firebase-admin/auth" import { TopicSubscription } from "./types" import { removeTopicSubscription } from "./removeTopicSubscription" +import { logger } from "firebase-functions" export const unsubscribeToTestimonyTopic = async ({ user, @@ -40,6 +41,6 @@ export const unsubscribeToTestimonyTopic = async ({ console.log("Debug: Subscription removed successfully") } catch (error) { // Debug: Log any errors - console.error("Debug: Error in unsubscribeToOrgTopic", error) + logger.error("Debug: Error in unsubscribeToTestimonyTopic", error) } } diff --git a/functions/src/testimony/search.ts b/functions/src/testimony/search.ts index 5947b7ae5..fb09232e6 100644 --- a/functions/src/testimony/search.ts +++ b/functions/src/testimony/search.ts @@ -1,6 +1,7 @@ import { db } from "../firebase" import { createSearchIndexer } from "../search" import { Testimony, TestimonySearchRecord } from "./types" +import { logger } from "firebase-functions" export const { syncToSearchIndex: syncTestimonyToSearchIndex, @@ -31,7 +32,7 @@ export const { convert: data => { const validation = Testimony.validateWithDefaults(data) if (!validation.success) { - console.error(data, validation.message, validation.details) + logger.error(data, validation.message, validation.details) throw new Error("Invalid testimony") } const testimony = validation.value