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
相关产品推荐
相关产品推荐

