Kar*_*iem 9 firebase firebase-authentication firebase-admin
当需要启用/禁用整个租户时,我们尝试在我们的多租户设置中更新许多用户。这样,我们有时会遇到QUOTA_EXCEEDED错误,尤其是对于拥有许多用户的大型租户。我在这里问过如何做得更好:一次禁用多个用户
由于目前没有使用 Firebase Admin SDK 更新用户的批量操作,我如何请求提高配额?
我在Firebase 身份验证限制中没有看到启用/禁用用户
错误消息并未指明必须更改的内容。它只说
超出更新帐户信息的配额。
我在项目的配额页面 ( https://console.cloud.google.com/iam-admin/quotas )上看不到任何限制。
如何提高配额?
kev*_*ius 10
对于有同样问题的每个人,这里有一个解决方案。
我联系了 Firebase 支持并得到了这个答案
如果您尝试一次更新用户信息(超过 10 个用户或每秒请求数),那么您将遇到此错误消息“超出更新帐户信息的配额”。请注意,当我们在短时间内收到大量请求时,会自动应用限制以保护我们的服务器。您可以尝试按顺序发送请求(分配负载),而不是并行发送。所以基本上,你需要一次处理一个(而不是一次)以避免错误。
所以我通过超时解决了这个问题,每 100 毫秒发送一个单独的记录
function listAllUsers(nextPageToken) {
let timeout = 0;
admin.auth().listUsers(1000, nextPageToken)
.then(function (listUsersResult) {
listUsersResult.users.forEach(function (userRecord) {
timeout = timeout + 100
nextUser(userRecord.uid, timeout)
});
if (listUsersResult.pageToken) {
listAllUsers(listUsersResult.pageToken);
}
})
.catch(function (error) {
console.log('Error listing users:', error);
});
}
listAllUsers();
Run Code Online (Sandbox Code Playgroud)
nextUser 函数:
function nextUser(uid, timeout) {
setTimeout(() => {
admin.auth().setCustomUserClaims(uid, { client: true }).then(() => {
}).catch(function (error) {
console.log('Error setting user:', error);
});
}, timeout);
}
Run Code Online (Sandbox Code Playgroud)
火力士在这里
如果您遇到无法从 Firebase 控制台更改的配额限制,请联系Firebase 支持以获得个性化帮助。它们通常可以帮助暂时提高配额,这也是我们的工程团队需要功能的重要指标。
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |