如何解决您的函数被终止,因为它在我的 Firebase 模拟器中引发了未处理的错误?

Agu*_*ana 3 node.js google-cloud-storage firebase google-cloud-functions firebase-storage

我正在尝试使用 Firebase 模拟器运行下面的 Firestore 触发器代码,firebase emulators:start

如您所见,在 firestore 触发器内,我有一段代码用于删除存储在 Firebase Storage 中的图像

我的代码:

exports.onDelete = functions
.firestore.document(path)
.onDelete((snapshot, context) => {

    try {

        const deletedUser = new User(snapshot.data());
        const promise1 = db.doc(`devices/${deletedUser.uid}`).delete();

        // deleting the image in Storage
        const defaultBucket = storage.bucket();
        const profilePictureFile = defaultBucket.file(`profilePicture/${deletedUser.uid}`);
        const promise2 = profilePictureFile.delete();

        const promises: Promise<any>[] = [promise1, promise2];
        return Promise.all(promises);

    } catch (error) {
        console.log(error);
        return Promise.reject(error);
    }
    

});
Run Code Online (Sandbox Code Playgroud)

因为 Firebase 模拟器目前没有用于存储的模拟器,所以我预计会出现错误。

但我有这样的警告

在此输入图像描述

正如您在最底部看到的,有一条警告说

您的函数被终止,因为它引发了未处理的错误。

这是一个严重的错误吗?我的意思是,我想我已经在代码中提供了 try catch 块,但为什么它仍然被视为未处理的错误?怎么解决这个问题?

抱歉,我是 Node 初学者,我是一名移动开发人员。所以如果我的问题有点愚蠢,我很抱歉

Fak*_*eer 6

每次调用 firebase 函数模拟器时都会出现恼人的错误 Firebase 函数终止模拟器错误

在 MacOS 上,修复方法是删除最初随 npm 安装的 firebase 工具

npm uninstall -g firebase-tools

然后使用自动安装脚本进行安装(Firebase参考

curl -sL https://firebase.tools | bash

然后每当更新可用时

curl -sL https://firebase.tools | upgrade=true bash