Firebase signInWithEmailAndPassword会提供“com.google.firebase.auth not found” [英] Firebase signInWithEmailAndPassword gives "com.google.firebase.auth not found"
问题描述
- MainActivity
- LoginActivity RigisterActivity
我能够成功注册用户,但是当我尝试使用电子邮件和密码登录用户时,任务没有成功。下面是我的代码
Android监视器给出以下错误:
lockquote
$ b 登录活动
private EditText mLoginEmailField;
private EditText mloginPassField;
私人按钮mLoginbtn;
私人按钮mNewAccountbtn;
private DatabaseReference mDatabaseRefrence;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundled savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
mLoginEmailField =(EditText)findViewById(R.id.loginEmailField);
mloginPassField =(EditText)findViewById(R.id.loginPasswordField);
mLoginbtn =(Button)findViewById(R.id.loginBtn);
mNewAccountbtn =(Button)findViewById(R.id.newAccountbtn);
mDatabaseRefrence = FirebaseDatabase.getInstance()。getReference()。child(Users);
mNewAccountbtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent rigisterIntent = new Intent (LoginActivity.this,RegisterActivity.class);
rigisterIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(rigisterIntent);
}
});
mLoginbtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
CheckLogin ();
}
});
private void CheckLogin(){
String email = mloginPassField.getText()。toString()。trim();
String pass = mloginPassField.getText()。toString()。trim(); $!
$ b if(!TextUtils.isEmpty(email)&!TextUtils.isEmpty(pass)){
mAuth.signInWithEmailAndPassword email,pass).addOnCompleteListener(this,new OnCompleteListener< AuthResult>(){
@Override $ b $ public void onComplete(@NonNull Task< AuthResult> task){
if(task.isSuccessful()){
CheackUserExsists();
} else {
Toast.makeText(LoginActivity.this, Erorr Login,Toast.LENGTH_LONG).show();
}
}
});
$ b $ private void CheackUserExsists(){
final String user_id = mAuth.getCurrentUser()。的getuid();
mDatabaseRefrence.addValueEventListener(new ValueEventListener(){
@Override $ b $ public void onDataChange(DataSnapshot dataSnapshot){$ b $ if(dataSnapshot.hasChild(user_id)){
Intent MainIntent = new Intent(LoginActivity.this,MainActivity.class);
MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(MainIntent);
} else
{
Toast.makeText(LoginActivity.this,您需要设置您的账户..,Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError){
$ b});
onComplete()
方法来记录登录失败的原因: <$ (@NonNull Task< AuthResult>){
@Override
public void onComplete(@NonNull Task< AuthResult> ;任务){
if(task.isSuccessful()){
CheackUserExsists();
} else {
Log.e(TAG,Sign-in Failed:+ ().getMessage());
//或者如果你不使用Log:
// System.out.println(Sign-in Failed:+ task.getException ).getMessage());
Toast.makeText(LoginActivity.this,Erorr Login,Toast.LENGTH_LONG).show();
}
}
});
失败的可能原因是:
- 电子邮件地址格式不正确
- 通过电子邮件/密码登录被禁用
- 电子邮件不存在或已被删除
- 与电子邮件对应的用户帐户已被禁用
- 密码错误
- MainActivity
- LoginActivity
- RigisterActivity
$ b
有关
的警告讯息
未找到com.google.firebase.auth的本地模块描述符类。
不是重要的,不是登录失败的原因。
I am using firebase as baackend for my android studio. And also fallowed eatch and every step provided by firebase console. I created 3 Activity's
I am able to register the user successfully but when i try to login user with email and password task is not getting successful. below is my code
Android monitor is giving the following error
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
Login Activity
private EditText mLoginEmailField;
private EditText mloginPassField;
private Button mLoginbtn;
private Button mNewAccountbtn;
private DatabaseReference mDatabaseRefrence;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
mLoginEmailField = (EditText) findViewById(R.id.loginEmailField);
mloginPassField = (EditText) findViewById(R.id.loginPasswordField);
mLoginbtn = (Button) findViewById(R.id.loginBtn);
mNewAccountbtn = (Button) findViewById(R.id.newAccountbtn);
mDatabaseRefrence = FirebaseDatabase.getInstance().getReference().child("Users");
mNewAccountbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent rigisterIntent = new Intent(LoginActivity.this,RegisterActivity.class);
rigisterIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(rigisterIntent);
}
});
mLoginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckLogin();
}
});
}
private void CheckLogin() {
String email = mloginPassField.getText().toString().trim();
String pass = mloginPassField.getText().toString().trim();
if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)){
mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
CheackUserExsists();
}else{
Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();
}
}
});
}
}
private void CheackUserExsists() {
final String user_id = mAuth.getCurrentUser().getUid();
mDatabaseRefrence.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(user_id)){
Intent MainIntent = new Intent(LoginActivity.this,MainActivity.class);
MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(MainIntent);
}else
{
Toast.makeText(LoginActivity.this,"You need to setup your Account.. ",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@
Modify your onComplete()
method to log the reason for sign-in failure:
mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
CheackUserExsists();
}else{
Log.e(TAG, "Sign-in Failed: " + task.getException().getMessage());
// Or if you don't use Log:
// System.out.println("Sign-in Failed: " + task.getException().getMessage());
Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();
}
}
});
The possible reasons for failure are:
- The email address is malformed
- Sign-in by email/password is disabled
- The user account corresponding to the email does not exist or has been deleted
- The user account corresponding to the email has been disabled
- The password is wrong
- The user's token is not valid
The warning message about
Local module descriptor class for com.google.firebase.auth not found.
is not significant and is not the reason for the sign-in failure.
这篇关于Firebase signInWithEmailAndPassword会提供“com.google.firebase.auth not found”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!