Android集成Firebase Auth邮箱注册用户未保存至控制台问题
Firebase邮箱密码注册无数据问题排查
问题背景
- 已在Firebase平台创建身份认证项目,完成Android应用与云端项目对接,集成所需SDK,工具提示已成功连接Firebase服务
- 需求为实现仅邮箱+密码方式注册用户,用户数据存入Firebase认证模块
- 已完成SignInActivity、SignUpActivity业务代码编写,应用可正常编译运行无崩溃,但执行注册操作后,Firebase控制台Authentication板块无已注册用户数据,列表为空,未显示注册提交的邮箱地址
- 参考实现效果:

现有代码
SignInActivity 代码
package com.codingstuff.loginandsignup import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.codingstuff.loginandsignup.databinding.ActivitySignInBinding import com.google.firebase.auth.FirebaseAuth class SignInActivity : AppCompatActivity() { private lateinit var binding: ActivitySignInBinding private lateinit var firebaseAuth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySignInBinding.inflate(layoutInflater) setContentView(binding.root) firebaseAuth = FirebaseAuth.getInstance() binding.textView.setOnClickListener { val intent = Intent(this, SignUpActivity::class.java) startActivity(intent) } binding.button.setOnClickListener { val email = binding.emailEt.text.toString() val pass = binding.passET.text.toString() if (email.isNotEmpty() && pass.isNotEmpty()) { firebaseAuth.signInWithEmailAndPassword(email, pass).addOnCompleteListener { if (it.isSuccessful) { val intent = Intent(this, MainActivity::class.java) startActivity(intent) } else { Toast.makeText(this, it.exception.toString(), Toast.LENGTH_SHORT).show() } } } else { Toast.makeText(this, "Empty Fields Are not Allowed !!", Toast.LENGTH_SHORT).show() } } } }
SignUpActivity 代码
package com.codingstuff.loginandsignup import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.codingstuff.loginandsignup.databinding.ActivitySignUpBinding import com.google.firebase.auth.FirebaseAuth class SignUpActivity : AppCompatActivity() { private lateinit var binding: ActivitySignUpBinding private lateinit var firebaseAuth: FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySignUpBinding.inflate(layoutInflater) setContentView(binding.root) firebaseAuth = FirebaseAuth.getInstance() binding.textView.setOnClickListener { val intent = Intent(this, SignInActivity::class.java) startActivity(intent) } binding.button.setOnClickListener { val email = binding.emailEt.text.toString() val pass = binding.passET.text.toString() val confirmPass = binding.confirmPassEt.text.toString() if (email.isNotEmpty() && pass.isNotEmpty() && confirmPass.isNotEmpty()) { if (pass == confirmPass) { firebaseAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener { if (it.isSuccessful) { val intent = Intent(this, SignInActivity::class.java) startActivity(intent) } else { Toast.makeText(this, it.exception.toString(), Toast.LENGTH_SHORT).show() } } } else { Toast.makeText(this, "Password is not matching", Toast.LENGTH_SHORT).show() } } else { Toast.makeText(this, "Empty Fields Are not Allowed !!", Toast.LENGTH_SHORT).show() } } } }
排查步骤(按优先级排序)
- 确认控制台开启邮箱密码登录入口
进入Firebase控制台对应项目,打开Authentication → Sign-in method页面,检查「电子邮件地址/密码」登录提供商是否为启用状态,若为禁用状态手动开启并保存配置后重试。 - 核对配置文件正确性
确认app模块根目录下的google-services.json是从当前对接的Firebase项目导出的最新版本,若近期修改过应用包名、新增/更换了签名密钥,需要重新下载配置文件替换旧文件,执行Clean Project后重新编译运行。同时确认项目根目录build.gradle、app模块build.gradle中已正确配置Firebase相关插件和依赖,版本号兼容。 - 打印日志确认请求实际返回结果
现有代码的失败提示为短时长Toast,部分机型会默认屏蔽,建议在createUserWithEmailAndPassword的回调中添加日志打印:
触发注册操作后查看Logcat输出,常见错误原因包括:firebaseAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener { Log.d("FirebaseReg", "success:${it.isSuccessful}, err:${it.exception?.message}") // 原有逻辑保留 }- 密码长度不足6位:Firebase邮箱密码注册要求密码最少6位,长度不足会直接返回注册失败
- 邮箱格式不符合规范:输入的邮箱地址格式错误会被服务端拦截
- 网络连通性问题:测试设备网络受限、代理/VPN配置异常会导致请求无法送达Firebase服务器
- 签名密钥未登记:debug、release签名对应的SHA1/SHA256值未添加到Firebase项目的应用配置中,会被服务端拒绝请求
- 验证前置校验逻辑是否正常触发
注册按钮点击后先判断输入框非空、两次密码一致,可以在每个分支入口加日志,确认输入内容符合要求,实际发起了注册请求,而非被前置校验拦截。 - 检查配额与拦截规则
进入Firebase控制台Authentication → Settings页面,确认没有开启异常流量拦截,免费版项目未超出当日认证请求配额,没有设置禁止注册的相关规则。
内容的提问来源于stack exchange,提问作者Josef M
相关产品推荐
相关产品推荐

