1

我已经创建了一个数据库维护在Firebase中的应用程序。我已经完成了用户注册部分,这里是我所使用的编码,如何在Firebase中维护数据库的Android应用程序中登录?

if(edtUsrNameS.length() >0 && edtPassS.length() >0 &&edtEmailS.length() >0) { 
        strUsrS = edtUsrNameS.getText().toString().trim(); 
        strPassS = edtPassS.getText().toString().trim(); 
        strEmailS = edtEmailS.getText().toString().trim(); 

        if(Constant.isValidEmail(strEmailS)){ 
         edtEmailS.setError(null); 

         Map<String, String> parameters = new HashMap<>(); 
         parameters.put(Constant.TAG_USER, strUsrS.trim()); 
         parameters.put(Constant.TAG_PASS, strPassS.trim()); 
         parameters.put(Constant.TAG_EMAIL, strEmailS.trim()); 


         String pushId = mFirebaseInstance.getReference(Constant.FIREBASE_LOGIN).getRef().push().getKey(); 
         parameters.put(Constant.TAG_KEY, pushId.trim()); 
         mFirebaseInstance.getReference(Constant.FIREBASE_LOGIN).getRef().child(strUsrS.trim()).setValue(parameters); 

         Toast.makeText(Login_Reg_Activity.this, "Registered Successfully", Toast.LENGTH_SHORT).show(); 
         finish(); 
         Intent inMain = new Intent(Login_Reg_Activity.this, Login_Reg_Activity.class); 
         startActivity(inMain); 

        }else{ 
         edtEmailS.setError("Enter a valid Email"); 
        } 

       }else{ 
        Toast.makeText(Login_Reg_Activity.this, "Fill all detail", Toast.LENGTH_SHORT).show(); 
       } 

注册成功后,数据被存储在users表中火力地堡这样的:

1

我怀疑是如何使用凭证用户名和手机登录。我参考了link,但我无法成功。所以,我亲切的请求是指导我这样做。另外,如何限制用户注册的重复?

在此先感谢。

+0

用户重复是火力保持你可以提供你试图 –

+0

我没有为重复编写代码但代码!成功登录后,我必须这样做。 –

回答

1

步骤1: 确保你已经启用了火力控制台shwon密码登录下面的图片 enter image description here

使用下面的代码进行登录使用电子邮件和PWD

FirebaseAuth mAuth = FirebaseAuth.getInstance(); // same auth as you used for regestration process 
mAuth.signInWithEmailAndPassword("[email protected]","pwd") 
       .addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 
         if(task.isSuccessful()){ 

         } 

        }}) 
       .addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception e) { 

         Toast.makeText(LoginActivity.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show(); 
        } 
       }); 

当您成功登录时比auth更改列表将被调用

验证更改听者

private FirebaseAuth.AuthStateListener mAuthListener; 
mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if(user !=null){ 

       } 
      } 
     }; 


mAuth.addAuthStateListener(mAuthListener); 
+0

感谢您的回复。但这是我在我的问题中附带的链接中所遵循的参考文献。将尝试它,让你知道结果... –

+0

你尝试上面的代码什么错误你脸 –

+0

没有电子邮件(&密码)我们无法登录的权利? –

相关问题