【问题标题】:Firebase Funcions missing logsFirebase 函数缺少日志
【发布时间】:2017-12-07 09:03:49
【问题描述】:

我有一个简单的函数上传到 Firebase Functions,它使用外部依赖项 (jimp)。我的代码有一些“console.log()”来跟踪触发函数时发生的事情(通过 Firstore 中的“写入”操作)。

根据我在 firebase 控制台中看到的日志, 该函数的每一步都正确运行,直到它到达对 jimp 对象的第一次调用。此时,控制台上不再有日志。

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 的依赖项中

有什么想法吗?

【问题讨论】:

    标签: firebase google-cloud-functions google-cloud-firestore


    【解决方案1】:

    Jimp.read 是一个回调风格的异步函数。使用 promise 使其适应函数。

    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

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2019-01-20
      • 2017-11-07
      相关资源
      最近更新 更多