Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Returning a promise of multiple async functions in a firebase cloud function?

So I have a Firebase Cloud Function that calls 2 async functions.

exports.someFunction = functions.firestore
  .document('some/path')
  .onCreate(event => {
    asyncFunction1();
    asyncFunction2();
  });

Both asyncFunction1 and asyncFunction2 return a promise.

Now, Firebase dictates that we should

Resolve functions that perform asynchronous processing (also known as "background functions") by returning a JavaScript promise.

However, since my function is performing two asynchronous processes, what should I return? I tried doing

exports.someFunction = functions.firestore
  .document('some/path')
  .onCreate(event => {
    return Promise.all(
      asyncFunction1(),
      asyncFunction2()
    );
  });

This works: both functions get called and executed correctly, but I also get the error TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined at Function.all when calling the Cloud Function.

Any ideas? Thanks in advance.

like image 563
Daniel Valderrama Avatar asked Mar 02 '18 12:03

Daniel Valderrama


1 Answers

You can try Promise.all([asyncFunction1(), asyncFunction2()]). Look on link

like image 83
Zeeshan Afzal Satti Avatar answered Sep 19 '22 22:09

Zeeshan Afzal Satti