我正在尝试使用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
循环。也许我缺少一些真正容易的东西? 最佳答案
我不确定我是否正确。
您想使用相同的参数重试错误吗?
手动执行以下操作:
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;
});
}
但是您应该为此使用一些库。