如何在Firebase Authentication中注册邮箱包含大写字母的用户
Firebase邮箱密码认证能否创建保留大写格式的邮箱账号?
不可以,Firebase邮箱密码认证体系默认会对所有传入的邮箱地址做规范化处理,强制转换为全小写后再存储,无法直接创建保留大写字母格式的邮箱账号。
设计原因
- 符合主流邮箱服务的通用规则:虽然RFC标准中邮箱的本地部分(@符号前的内容)理论上支持大小写区分,但市面上绝大多数主流邮箱服务商(Gmail、Outlook等)都默认不区分邮箱大小写,
AAAA@gmail.com和aaaa@gmail.com会被识别为同一个邮箱地址。Firebase的自动转小写逻辑是为了避免同一个邮箱因为大小写差异被创建为多个账号,降低身份校验的冲突概率。 - 全链路统一逻辑:不只是Firebase控制台手动添加用户时会做转换,通过客户端SDK、Admin SDK调用用户创建接口时,传入的邮箱参数同样会被自动转为全小写存储,后续通过Auth接口查询返回的邮箱字段也均为全小写格式。
替代方案
如果你的业务需要保留用户原始输入的带大小写的邮箱格式,可以额外存储自定义字段实现:
- 在用户的Auth自定义声明(Custom Claims)、或者关联的Firestore/Realtime Database用户专属文档中,单独存储用户初始输入的带大小写的原始邮箱地址
- 业务层需要展示邮箱时读取该自定义字段即可,身份校验逻辑仍然使用Firebase自动规范化的小写邮箱处理,用户登录时无论输入大写还是小写的对应邮箱,都可以正常匹配到对应账号,不会影响登录流程。
内容的提问来源于stack exchange,提问作者Naoki Miyaguchi
相关产品推荐
相关产品推荐

