我已经使用 onDocumentCreated 触发器在 Firebase 中设置了一个触发函数,并注意到有一个选项可以设置用于重试的布尔值。我的假设是,如果函数抛出错误,这将导致重试。因此,我设置了以下测试函数并使用本地模拟器运行它。不幸的是,即使我在日志中看到错误,我也无法多次调用该函数。
还有其他我可能遗漏的设置吗?
export const testRetries = onDocumentCreated(
{
document: "/testing/{test}",
retry: true,
},
async (event) => {
console.log("testRetries");
throw new Error("test error");
}
);
我尝试在模拟器中运行上述代码,但只看到它触发一次,然后就再也没有触发过。
Firebase 模拟器不能完全重现生产行为,并且不支持像它模拟的 Cloud Functions 服务那样的重试。 文档中提到了模拟器不支持重试的事实:
Cloud Functions 模拟器不支持在失败时重试函数。
如果您想观察重试行为,您应该像在类似生产的环境中一样部署该函数并调用它。