【问题标题】:FireBase Authentication mAuth.createUserWithEmailAndPassword(email, password) errorFireBase 身份验证 mAuth.createUserWithEmailAndPassword(电子邮件,密码)错误
【发布时间】:2019-08-05 23:29:54
【问题描述】:

所以我正在尝试向我的应用添加身份验证和登录服务,我正在按照 FireBase 上的所有步骤进行操作,尽管我无法通过这部分,但它说错误是

createUserWithEmailAndPassword(Java.lang.String, Java.lang.String) 在 FireBaseAuth 不能应用于(Android.widget.text, Android.widget.text)

提前感谢您提供的任何帮助。代码如下:

public void Register(View view) {
    Intent intent = new Intent(LoginActivity.this, BottomActivity.class);
    startActivity(intent);
    attemptLogin();

    mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener( this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                Log.d( TAG, "createUserWithEmail:success" );
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI( user );
            } else {
                Log.w(TAG, "createUserWithEmail:failed");
                Toast.makeText(LoginActivity.this, "Authentication failed", Toast.LENGTH_SHORT).show();
                updateUI( null );
            }
        }
    } );
}

电子邮件/密码:

private AutoCompleteTextView email;
private EditText password;

【问题讨论】:

  • 显示你如何初始化变量 email 和 password
  • 同时删除多余的空间(email, password)
  • 请告诉我们在尝试进行身份验证时emaipassword 的值是什么。也请回复@AlexMamo
  • @AlexMamo 私人 AutoCompleteTextView 电子邮件;私人 EditText 密码;
  • 你试过ribbit的解决方案吗?

标签: android firebase firebase-authentication


【解决方案1】:

通过阅读您收到的错误,这表明您传递的参数类型与方法所期望的不匹配。它需要String 对象。因此,您需要从 TextViewEditText 中提取该值。

尝试将email.getText().toString()password.getText().toString 作为参数而不是emailpassword 传递。

所以

mAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString())...

【讨论】:

    【解决方案2】:

    这样使用

     mAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString()).addOnCompleteListener( this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Log.d( TAG, "createUserWithEmail:success" );
                    FirebaseUser user = mAuth.getCurrentUser();
                    updateUI( user );
                } else {
                    Log.w(TAG, "createUserWithEmail:failed");
                    Toast.makeText(LoginActivity.this, "Authentication failed", Toast.LENGTH_SHORT).show();
                    updateUI( null );
                }
            }
        } );
    

    【讨论】:

    • 谢谢,它成功了,现在,我如何从这个到每次用户按下“注册”按钮时,它都会在 Firebase 上创建一个新用户?
    • 很高兴听到这个消息
    【解决方案3】:

    答案很简单,你应该在 built.gradle 的依赖项中添加一个类路径 'com.google.gms:google-services:4.3.8' 然后在 built.gradle(app) 中添加 id 'com.google.gms.google-services' 就是这样。

    【讨论】:

    • 嘿伙计。感谢您的输入。但是,大约 2 年前我设法解决了这个问题,哈哈。
    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 2016-10-13
    • 2018-11-11
    • 2013-07-11
    • 2021-11-21
    • 2021-11-14
    • 2019-03-15
    • 2016-11-13
    相关资源
    最近更新 更多