我已经有一段时间没有更改我的 firebase 函数了,昨天我想创建一个新的 firebase 函数并将其添加到我所有函数的顶部,所以这是我的第一行:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const uuid = require('uuid');
admin.initializeApp();
const db = admin.firestore();
const storage = admin.storage().bucket();
const app = express();
app.use(cors({ origin: true }));
exports.runPredictionOnUpload = functions.firestore
.document('Project/{projectID}/models/{modelID}/predictions/{docId}')
.onCreate(async (snap, context) => {
const { projectID, modelID, docId } = context.params;
const document = snap.data();
if (!document || !document.data) {
console.error('Missing data field in the document.');
await admin.firestore().collection('Project').doc(projectID).collection('models').doc(modelID).collection('predictions').doc(docId).update({
status: 'error',
error: 'Data field is missing',
});
return;
}
}
功能还没有完成。但如果我现在运行 firebase deploy --only 函数,我会收到以下错误:
类型错误:functions.firestore.document 不是函数
问题是我的下一个云函数(我已经几个月没有更改并且总是可以工作)也从functions.firestore.document开始,所以如果我删除新函数,我的所有函数都会出现相同的错误“旧”功能。所以现在我无法再推送更新或添加新功能。有谁知道出了什么问题吗?
看起来您升级了 firebase-functions 依赖项,但没有更新代码。 您的函数是使用旧的 1st-gen API 编写的,但最新的 firebase-functions 使用新的 2nd-gen API。 您可能应该开始将代码迁移到新的 API。 或者继续使用旧版本的 firebase-functions 而不升级它。