【发布时间】:2021-01-17 08:21:12
【问题描述】:
当我们上传新用户的 CSV 文件时,我们希望使用自定义声明为该用户创建一个 Firebase 帐户。目前,我们在尝试上传包含许多用户的 CSV 时超出了配额限制。不完全确定这是哪个配额限制,但怀疑可能是以下 -
- 新帐户创建 100 个帐户/IP 地址/小时
错误信息:
超过更新帐户信息的配额。
我们目前使用createUser,然后是setCustomUserClaims,在Promise.all() 中同时创建每个用户。这托管在云功能中。有没有办法以批量操作的形式执行此操作,这样我们就不会达到配额限制?
调查importUsers,似乎绕过了对电子邮件地址和uid重复的检查;维护我们数据的完整性至关重要。
- 此操作针对批量导入进行了优化,将忽略对
uid的检查, -
email和其他可能导致重复的标识符唯一性。
有什么优雅的解决方案吗?
await Promise.all(items.map(async user => {
const userParams = {
displayName: `${user.firstNames} ${user.lastNames}`,
phoneNumber: user.mobileNumber,
email: user.email || ''
}
this.logger.debug({ user, role }, 'Creating a new firebase user')
const member = await this.auth.createUser(userParams)
this.logger.debug({ member }, 'Attempting to set custom claims for user')
await this.auth.setCustomUserClaims(member.uid, { role })
const resetOptions = {
url: `https://some-url`
}
const resetLink = await this.auth.generatePasswordResetLink(user.email, resetOptions)
const passwordResetData = {
role,
link: resetLink,
firstNames: user.firstNames,
companyName: 'company name'
}
this.logger.debug({ user, passwordResetData }, 'Sending password reset link to user')
return await this.notificationService.sendPasswordResetLink([user.email], passwordResetData)
}))
【问题讨论】:
-
请编辑问题以明确您达到的限制。如果有错误消息,请分享其确切内容。如果你也展示你正在使用的代码,它也会有所帮助。
标签: javascript node.js firebase firebase-authentication firebase-admin