发布于 2019-04-10 08:45:23
目前没有使用Firebase CLI进行部署的类似选项。
这是Firebase团队正在做的事情,所以请继续关注更新。
发布于 2020-11-15 19:54:15
您可以手动使用GCloud控制台在Firebase函数中启用重试。在firebase-functions 3.10.0中添加了以编程方式重新尝试基于触发器的函数(请参阅变化量g和关联的拉请求)。
由于这在PR或docs中并不是完全显而易见的,下面是语法的一个快速示例:
export const myFirebaseFunc = functions
.runWith({
failurePolicy: {
retry: {},
},
memory: '512MB',
timeoutSeconds: 60,
})
.firestore.document('/path/to/some/doc')
.onCreate(async (snap, context) => {
/* do stuff */
})在撰写这篇文章时,失败策略似乎只是打开或关闭。因此,这是等价的。
export const myFirebaseFunc = functions
.runWith({
failurePolicy: true,
memory: '512MB',
timeoutSeconds: 60,
})
.firestore.document('/path/to/some/doc')
.onCreate(async (snap, context) => {
/* do stuff */
})一些注意事项:
--force进行部署context.eventTimestamp来知道第一次尝试何时开始。阅读这个:https://firebase.google.com/docs/functions/retries,并确保您的函数是幂等的。
同时,也很难发现应该返回什么来强制重试或避免重试。触发的Firebase函数必须返回承诺.(参见此维德)
如果下列情况下,启用重试的Firebase函数将重试:
这意味着,如果您遇到一个您知道最终不会通过重试解决自身的错误(即您希望停止函数执行而不是重试),则可以返回Promise.resolve({message: 'some message'});
https://stackoverflow.com/questions/55606808
复制相似问题