FireBase 身份验证 mAuth.createUserWithEmailAndPassword(电子邮件,密码)错误

Posted

技术标签:

【中文标题】FireBase 身份验证 mAuth.createUserWithEmailAndPassword(电子邮件,密码)错误【英文标题】:FireBase Authentication mAuth.createUserWithEmailAndPassword(email, password) error 【发布时间】: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的解决方案吗? 【参考方案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 年前我设法解决了这个问题,哈哈。

以上是关于FireBase 身份验证 mAuth.createUserWithEmailAndPassword(电子邮件,密码)错误的主要内容,如果未能解决你的问题,请参考以下文章

将 Firebase 身份验证与 Firebase 数据库连接

使用firebase电话身份验证验证失败

Firebase 身份验证迁移

.onAuthStateChanged 方法是不是计入 Firebase 身份验证验证?

“此应用无权使用 Firebase 身份验证”

使用 Unity 进行 Firebase 电话身份验证