我正在尝试使用firebase admin sdk运行一个脚本,该脚本使用listUsers()
循环遍历所有用户,我正在处理它:
admin.auth().listUsers(batch, nextPageToken)
.then(function(listUsersResult) {
// process successful results
})
.catch(function(error) {
// log the error
});
偶尔对listUsers
本身的调用失败,错误为Error: www.googleapis.com network timeout. Please try again.
我发现了错误,但在此之后我的脚本将不会继续。
在这种情况下我之前使用过retry
,但我想知道是否或如何继续使用我所使用的同一批用户/令牌,而无需重新启动listUsers
循环。也许我错过了一些非常简单的事情?
答案 0 :(得分:1)
我不确定我是否帮助你。 您想使用相同的参数重试错误吗?
手动你会这样做:
function fun(batch, nextPageToken, retries = 5) {
return admin
.auth()
.listUsers(batch, nextPageToken)
.then(listUsersResult => {
// process successful results
})
.catch(error => {
if (err.code === 'ETIMEDOUT' && retries > 0) {
const turnsLeft = retries - 1;
return fun(batch, nextPageToken, turnsLeft);
}
throw error;
});
}
但你应该使用一些库。