0

외부 종속성 (jimp)을 사용하는 Firebase Functions에 업로드 된 간단한 기능이 있습니다. 내 코드는 "console.log()"함수가 트리거되었을 때 (Firstore의 '쓰기'동작에 의해) 무슨 일이 일어나고 있는지 추적합니다. 는 날씬한 객체에 대한 첫 번째 호출에 도달 할 때까지 나는 중포 기지 콘솔에서 볼 수있는 로그에 따르면Firebase Funcions 로그가 누락되었습니다.

, enter image description here 함수의 모든 단계가 올바르게 실행됩니다. 이 시점에서 콘솔에 더 이상 로그가 없습니다.

const Jimp = require('jimp'); 
const os = require('os'); 
... 
exports.manageImage2 = functions.firestore 
    .document('/items/{docId}') 
    .onWrite(event => { 
     console.info('event triggered:', event); 
     console.log('tmpDir', os.tmpdir()); 
     const originalUrl = data.original_file_url; 
     const imageSize = data.size; 

     if (imageSize > maxSize) { 
      console.log(`Image is too big (${imageSize})`); 
      Jimp.read(originalUrl, (err, image) => { 
... 

내가 의존성에 문제가있는 것 같지만, 어떤 단서가있을 수 있습니다.

나는 분명히 어떤 문제를 로컬로 내 코드를 실행하며 라이브러리가 제대로 package.json

어떤 생각의 의존성에 나와있는 것을 확인했다?

답변

0

Jimp.read은 콜백 스타일의 비동기 함수입니다. 기능을 사용하기 위해 약속을 사용하십시오.

exports.manageImage2 = functions.firestore 
    .document('/items/{docId}') 
    .onWrite(event => { 
     console.info('event triggered:', event); 
     console.log('tmpDir', os.tmpdir()); 
     const originalUrl = data.original_file_url; 
     const imageSize = data.size; 

     if (imageSize > maxSize) { 
      console.log(`Image is too big (${imageSize})`); 
      return new Promise(resolve => Jimp.read(originalUrl, (err, image) => { 
       // … 
       // resolve(result); 
      })); 
     } 
    }); 

설명 : https://firebase.google.com/docs/functions/terminate-functions.