Firebase Auth中fetchSignInMethodsForEmail返回空列表问题
Firebase Auth fetchSignInMethodsForEmail返回空数组排查方案
确认项目配置一致性
检查当前项目的google-services.json是否和你查看用户的Firebase项目完全匹配。不同Firebase项目的用户池相互独立,如果代码里用了错误的配置文件,自然查不到目标账号的登录方式。同时验证控制台中是否添加了当前应用的SHA-1指纹,缺失指纹可能导致Auth相关接口功能异常。检查目标账号状态
登录Firebase控制台,确认该邮箱对应的账号未被禁用。如果账号处于禁用状态,fetchSignInMethodsForEmail会返回空数组,因为该账号已无可用登录方式。另外核实账号的邮箱是否准确,是否存在修改记录,避免查询的邮箱和实际账号邮箱不匹配。验证SDK版本与兼容性
对比之前正常运行项目的Firebase Auth SDK版本,当前项目可能因SDK版本更新出现兼容性问题。建议将Firebase Auth SDK更新至最新稳定版,或回退到之前可用的版本测试。修正代码逻辑细节
- 先对输入邮箱做去空格处理,避免因前后空格导致查询的邮箱与控制台账号不一致:
val trimmedEmail = emailtxt.trim() auth.fetchSignInMethodsForEmail(trimmedEmail) - 在日志中打印
emailtxt的原始值,确认传入接口的邮箱是否正确:Log.d("TargetEmail", emailtxt) - 确认
auth实例是通过FirebaseAuth.getInstance()正确初始化的,避免因实例异常导致接口调用失效。
- 先对输入邮箱做去空格处理,避免因前后空格导致查询的邮箱与控制台账号不一致:
检查控制台登录方式配置
进入Firebase控制台的「Authentication」->「登录方式」,确认你依赖的登录方式(如邮箱/密码、Google登录)处于启用状态。若登录方式被意外关闭,可能影响接口返回的登录方式列表。
内容的提问来源于stack exchange,提问作者VAL
相关产品推荐
相关产品推荐

