尝试使用 firebase auth 设置确认密码

2023-12-31

我正在尝试编写我的第一个应用程序,并且使用 firebase auth email-password 作为登录方法。在我的注册活动中,我需要电子邮件、密码和确认密码。我无法让应用程序在创建帐户之前检查密码是否 >= 6 个字符以及密码和确认密码是否相等。 该应用程序似乎会检查密码是否> = 6,但如果是这样,它会创建帐户而不检查密码是否=确认密码。 我还想显示一条错误消息,指出该用户名已被使用。

这是我的代码

    private void signUpUser(String email, final String password) {
    auth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (!task.isSuccessful())
                    {
                        if (password.length() < 6)
                            snackbar = Snackbar.make(activity_criar_conta, "Your password must have at least 6 characters.", Snackbar.LENGTH_SHORT);
                                    snackbar.show();

                        String pass2 = etConfirmarSenha.getText().toString();

                        if (!password.equals(pass2))
                        snackbar = Snackbar.make(activity_criar_conta, "Both password fields must be identic", Snackbar.LENGTH_SHORT);
                        snackbar.show();

                    }
                    else{
                        String emailuser = etCriarEmail.getText().toString();
                        snackbar = Snackbar.make(activity_criar_conta, "Your account was created with sucess: "+emailuser,Snackbar.LENGTH_SHORT);
                        snackbar.show();

您需要在调用 auth.createUserWithEmailAndPassword 之前检查您的条件。

您的 if 语句中还缺少 { ,因此它没有按照您的预期进行。应该看起来像这样:

private void signUpUser(String email, final String password) {
   if (password.length() < 6) {
     snackbar = Snackbar.make(activity_criar_conta, "Your password must have at least 6 characters.", Snackbar.LENGTH_SHORT);
     snackbar.show();
     return;
   }
   String pass2 = etConfirmarSenha.getText().toString();
   if (!password.equals(pass2)) {
    snackbar = Snackbar.make(activity_criar_conta, "Both password fields must be identical", Snackbar.LENGTH_SHORT);
    snackbar.show();
    return;
   } 
   auth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        String emailuser = etCriarEmail.getText().toString();
                        snackbar = Snackbar.make(activity_criar_conta, "Your account was created with sucess: "+emailuser,Snackbar.LENGTH_SHORT);
                        snackbar.show();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 firebase auth 设置确认密码 的相关文章

随机推荐

  • 什么时候适合使用基数排序?

    能够使用基数排序的数据有哪些限制 如果我要对一个大的整数列表进行排序 使用基数排序是否合适 为什么基数排序不被更多地使用 当您拥有大量数据且其键受到某种限制时 这非常有用 例如 当您需要排序 100 万个 64 位数字的数组时 可以使用它按
  • 全速线程上的 SwingUtilities.invokeLater

    我有一个线程使用 SwingUtilities invokeLater 在我的 JFrame 上显示更新 线程的速度是可调的 当它设置为全速 更新之间没有睡眠 时 我的程序会严重减慢 我想问题是我的线程生成了太多 JFrame 线程无法使用
  • 如何做条件Gson反序列化默认值

    想象一下如果我有以下 JSON game football people elevent game badminton people two 我的班级如下 class Sport String game String people 我可以对
  • 如何为容器分配特定的 IP 并使其可以在 VM 主机外部访问?

    我希望让我的两个容器在 VM 主机之外的单独的特定 IP 地址上可用 192 168 0 222 192 168 0 227 没有端口映射 这意味着我希望使用容器的 IP 直接访问容器上的任何端口 我已经有一些计算机在 VM 主机外部的网络
  • 如何创建 UIBezierPath 渐变填充?

    我想创建一个UIBezierPath具有 10px 圆角和渐变填充 我怎样才能达到这个效果 这是我想做的事情的图片 正如你所看到的 这个正方形有 2px黑色边框 10px 圆角 红到绿线性渐变填充 我怎样才能以编程方式做到这一点不使用图案图
  • R Shiny 中有全局变量吗?

    如何使用 R Shiny 声明全局变量 以便不需要多次运行相同的代码片段 作为一个非常简单的示例 我有 2 个使用相同精确数据的图 但我只想计算一次数据 这里是ui R file library shiny Define UI for ap
  • 如何使用 {{{}}} 语法来获取受信任的 html?

    车把的 expression 表单 HTML 转义返回的值 expression 形式没有 有什么办法可以将这个功能添加到AngualarJS模板中 以便我们可以使用 expression 用于定期清理输出和 expression 对于可信
  • 如何使用 Thin 服务器而不是默认的 Webrick 运行 Cucumber Selenium?

    我的 Cucumber 功能与 selenium 一起使用默认的 Webrick 服务器运行 对于 Rails 3 应用程序 如何强制或设置使用瘦服务器而不是 Webrick 运行 要在 env rb 文件中添加任何设置吗 这是用最近的水豚
  • 如何避免 .flatMap(x->reactiveAction(x).thenReturn(x))

    在使用项目反应器库进行 Java 反应式编程期间 我偶然发现了一种模式 我想知道是否有开箱即用的支持 所以我想要下面的代码 Mono just hello flatMap hello gt reactiveAction hello then
  • 如何将提交移至另一个分支?

    我想将我的最后几次提交从 master 移到他们自己的分支中 我的电脑上的树看起来像这样 W some branch X1 X2 X3 X4 Y Z1 Z2 master 我希望它看起来像 W some branch X1 X2 X3 X4
  • Android通过代码截图

    这应该不是一个太难的问题 我希望能够截取我的布局 视图 的屏幕截图并通过短信发送 有人可以带我走完台阶吗 Thanks 编辑 我猜它不一定是 屏幕截图 只要我们能够以某种方式从视图中获取所有渲染的像素即可 在网络上 我发现了一些可以一起工作
  • fix.by(by.x, x) 中的错误:“by”必须指定唯一有效的列mergedata <- merge (dataset1, dataset2, by.x="personalid") [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 编辑问题以包括期望的行为 特定问题或错误以及重现问题所需的最短代码 help minimal reproducible example 这
  • Rails Date 与 Date.today 的比较

    我有一个日期格式的birth date变量 我想将它与 Date today 进行比较 如下所示 问题是它返回错误 因为它也想比较年份 这是一个生日 所以我不关心年份 只是想看看birth date 月份和日期 是否等于 Date toda
  • 自动创建构造函数,基于父类的构造函数(C++)

    这是我想要开始工作的代码 template
  • Rails - 如何处理不存在的路线(“没有路线匹配[GET]”)?

    My route好像 match about gt company about 当我设置为 url 时http localhost 3000 aboutttt 我收到错误消息 No route matches GET aboutttt 我想
  • PDO语句(MySQL):将值0插入位(1)字段会导致表中写入1

    我使用 bit 1 字段来存储布尔值并使用 PDO 准备语句写入表中 这是测试表 CREATE TABLE IF NOT EXISTS test SomeText varchar 255 NOT NULL TestBool bit 1 NO
  • ImageSpan 不适用于 Android 5

    我的这个函数在 Android 4 4 1 上运行良好 但在 5 0 上就崩溃了 public static SpannableStringBuilder prependImage Drawable drawable String text
  • Laravel:将上传的文件保存到会话中

    我不想将文件直接上传并移动到服务器上的某个位置 而是将其保存到会话中 并在稍后根据条件上传 这是我当前将文件保存到我的服务器的方法 public function step3store file Input file file identi
  • SqlDependency 与 SQLCLR 对 WebService 的调用

    我有一个桌面应用程序 任何表格更改都应该通知该应用程序 因此 我发现只有两个适合我的情况的解决方案 SQL依赖关系 and SQLCLR 我想知道 NET 堆栈中是否有更好的 我已经构建了这两个结构并使它们工作 我只能比较从 SQL Ser
  • 尝试使用 firebase auth 设置确认密码

    我正在尝试编写我的第一个应用程序 并且使用 firebase auth email password 作为登录方法 在我的注册活动中 我需要电子邮件 密码和确认密码 我无法让应用程序在创建帐户之前检查密码是否 gt 6 个字符以及密码和确认