Comments (6)
Yes the issue is what @ahaverty described.
When you do this:
createThumbnail(1, ...);
createThumbnail(2, ...);
createThumbnail(3, ...);
...
return;
You are starting 3 asynchronous processes but you are returning right away. Therefore the instance gets shut down and your 3 createThumbnail
don;t have time to complete.
Each of these returns a Promise
. What you need to do is this instead:
const listOfAsyncJobs = [];
listOfAsyncJobs.push(createThumbnail(1, ...));
listOfAsyncJobs.push(createThumbnail(2, ...));
listOfAsyncJobs.push(createThumbnail(3, ...));
...
return Promise.all(listOfAsyncJobs); // This will ensure we wait for the end of the three aync tasks above.
from functions-samples.
Thanks a lot. You have saved my day !
from functions-samples.
I got an econn error with my realtime database function, perhaps my fix could help you debug your issue? (See example of logs occuring after function terminates: firebase/firebase-functions#18 (comment)
from functions-samples.
As @ahaverty said can you make sure you return a Promise correctly in your code. From your snippet your code looks OK though but it's missing some parts of it we can't be sure.
from functions-samples.
Thank guys, you are right. I did some test and the problem really seems to be a problem with a return.
I don't really understand when I have to return something. I want to do something like this :
exports.myFunction =
functions
.database
.ref('...')
.onWrite(event => {
...
// Create thumbnails
createThumbnail(1, ...);
createThumbnail(2, ...);
createThumbnail(3, ...);
...
return; // <- Is this necessary ?
});
function createThumbnail(...) {
...
return bucket
.file(originalFilepath)
.download({
destination: tempFilePath
})
.then(() => {
...
// Generate a thumbnail using ImageMagick.
return spawn('convert', [tempFilePath, '-thumbnail', dimension + 'x' + dimension + '>', tempFilePath])
.then(() => {
....
// Uploading the thumbnail.
return bucket.upload(tempFilePath, {
destination: thumbnailUrl
})
.then(() => {
...
// Save thumbnailUrl in database
return admin.database().ref(...).set(thumbnailUrl);
});
});
});
}
This code doesn't work. I tried to remove some of these return
but either I have a read ECONNRESET
or a TimeOut
.
If you can give me any advice, I'd be very thankful
from functions-samples.
PS: I'll also reply on your Stack Overflow post.
from functions-samples.
Related Issues (20)
- functions predeploy error: Command terminated with non-zero exit code 2 HOT 1
- [DOCS] for sample: python callable functions
- How is this still a problem 2 years later? I am running into this now.
- [BUG] in sample: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/v2/providers/scheduler' is not defined HOT 1
- [BUG] in sample:
- [DOCS] for sample: auth-blocking-functions | Cannot extract event_type HOT 1
- [DOCS] for sample: monitor-cloud-logging
- [BUG] Firebase Functions Tasks: Firebase ID token has incorrect "aud" (audience) claim. HOT 2
- https_fn.HttpsError::message isn't really surfaced
- ##https://github.com/firebase/functions-samples/tree/d8ec6aa2263e5403b05a33b0a06e9340f6b4968e/quickstarts HOT 1
- Hey-c6fc3 ____firebase app HOT 1
- [BUG] in sample: taskqueues-backup-images HOT 1
- [DOCS] for sample:
- ATT..eml[stt.net](angular.io)answer.txt
- [DOCS] for sample: monitor-cloud-logging : logging submodule
- [BUG] in sample: Spotify Auth
- Com+
- Gitlab administrator block
- Gina Acosta
- LibVLCSharp 3.0: The first stable release of VideoLAN’s crossplatform .NET binding for LibVLC [{aftk}2D?]- mfkl HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from functions-samples.