我有一个上传到Firebase函数的简单函数,它使用外部依赖项(jimp)。我的代码有一些“console.log()”来跟踪触发函数时发生的事情(通过Firstore中的'write'动作)。
根据我在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
有什么想法吗?
答案 0 :(得分:0)
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);
}));
}
});
是一个回调样式的异步函数。使用promise来使其适应功能。
import numpy as np
def g_C(A,B):
A = np.asanyarray(A)
assert A.ndim == 2 # to assert that A is a multidimensional array.
get = (np.abs(A-B)).argmin()
return (A[get])
如需解释,请阅读:https://firebase.google.com/docs/functions/terminate-functions。