You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

createUserWithEmailAndPassword可多次调用吗?isUserNew是否可能为false?

Firebase Auth 相关问题解答

问题1:createUserWithEmailAndPassword能否被多次调用?

可以多次调用,但行为分两种情况:

  • 使用未注册过的邮箱+密码调用时,每次都会尝试创建新用户,成功后生成对应新账号。
  • 使用已注册的邮箱+密码调用时,请求会直接失败,返回「邮箱已存在」的错误,不会重复创建用户。

问题2:若该方法仅调用一次,isUserNew是否可能为false?

不可能。createUserWithEmailAndPassword的核心作用就是创建新用户,只有当邮箱未被注册时,调用才会成功进入task.isSuccessful分支。此时additionalUserInfo.isUserNew必然为true,不存在成功创建却返回false的情况。

问题3:是否无需检查该值?

在当前代码的场景下,完全不需要检查isUserNew。因为只要createUserWithEmailAndPassword调用成功,就一定是新用户,直接显示Toast即可。如果后续代码有扩展(比如和登录逻辑合并复用回调),保留这个判断也不会有副作用,但现阶段属于多余逻辑,可以移除。

附原代码:

auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                val isUserNew = authResult.additionalUserInfo!!.isUserNew!!
                if(isUserNew) {
                    Toast.makeText(baseContext, "Hello", Toast.LENGTH_SHORT).show()
                }
            } else {
                Log.d(TAG, task.exception!!.message!!)
            }
        }

内容的提问来源于stack exchange,提问作者Always Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:40:22