I'm Joe Too
I'm Joe Too

Reputation: 5870

Manually trigger scheduled or trigger function

Is there any way to manually trigger a scheduled function and/or a Firestore trigger function? I have two scenarios I need to solve:

  1. A cloud function that is listening to a Firestore document (onCreate) didn't fire - it failed on 3 of about 1,000 invocations, so I need to manually trigger it for these 3 documents. Is this possible (to manually trigger this function)?
  2. I have a scheduled function that runs hourly, but threw an error b/c of a map in the Firestore document when the code expected an array. Any way I can manually run the scheduled function once rather than waiting an hour before it runs again?

Upvotes: 8

Views: 3356

Answers (3)

ultraGentle
ultraGentle

Reputation: 6349

  • Go to the Firebase console
  • Select the desired project
  • Select the Functions menu item from the left sidebar
  • Open the ... menu at the right side of the cron job
  • Select the View in Cloud Scheduler menu item
  • Open the ... menu at the right side of the cron job
  • Select the Force run menu item

Upvotes: 22

Jimmy Kane
Jimmy Kane

Reputation: 16865

You can run a firestore scheduled function via the FirebaseTools and running it locally. Starting the shell command eg npm run build && firebase functions:shell will allow you to invoke a Scheduled Function eg:

export const parseGarminHealthAPIActivityQueue = functions.region('europe-west2').runWith({
  timeoutSeconds: TIMEOUT_IN_SECONDS,
  memory: MEMORY
}).pubsub.schedule('every 10 minutes').onRun(async (context) => {
  await parseQueueItems(ServiceNames.GarminHealthAPI);
});

Upvotes: 2

Doug Stevenson
Doug Stevenson

Reputation: 317808

It's not possible to manually trigger a function from the Firebase console. Your best bet is to use the methods shown in the Cloud documentation, which involve using gcloud's call command or the Cloud console's Testing tab. Neither of these are very easy, as you will have to construct the JSON payload to the function manually.

If I may make a suggestion - if your functions are failing due to errors, you should consider enabling retry on your functions, and making sure that your functions only generate errors for situations that should be retried. Depending on manual invocation in the event of a failure will not scale very well - errors should be handled by code as much as possible.

Upvotes: -2

Related Questions