Sofiane Lyno
Sofiane Lyno

Reputation: 185

run some code 1 hour after a document is updated with cloud function and firestore

The user of my app can receive message and i want them to receive a notification push 1 hour after the document message is created.

Here is my cloud function :

export const scheduler = functions.firestore
    .document("profile/{uuid}/message/{messageId}")
    .onCreate((change, context) => {

        //code that will send a notification push in one hour 
            
        return true;
    });

I want to try this (i found that solution on that link : https://firebase.google.com/docs/functions/schedule-functions) but i don't know if i can replace "every 5 minutes" with some text saying one hour after :

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

Upvotes: 2

Views: 1326

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 600006

The time(s) when scheduled Cloud Functions run must be known at the moment you deploy them. That is not the case for you, since the time depends on each individual document.

In that case you can either periodically run a scheduled Cloud Function that then checks what documents it needs to update, or you can use Cloud Tasks to create a dynamic trigger. For a detailed example of the latter, see Doug's blog post How to schedule a Cloud Function to run in the future with Cloud Tasks (to build a Firestore document TTL).

Upvotes: 3

Related Questions