2016-10-13 3 views
0

Ich habe eine Registrierungsaktivität mit Firebase-Authentifizierung erstellt, aber als ich die Anwendung ausgeführt und auf die Anmeldeschaltfläche geklickt habe, ist nichts passiert. Nur der Fortschrittsdialog, der nur rotierte und sich nicht einmal anmeldete.Firebase Authorization Error

Hier ist mein Code:

public class RegisterActivity extends AppCompatActivity { 

    private EditText mNameField; 
    private EditText mEmailField; 
    private EditText mPasswordField; 

    private Button mRegisterBtn; 
    private FirebaseAuth mAuth; 
    private DatabaseReference mDatabase; 

    private ProgressDialog mProgress; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 

     mAuth = FirebaseAuth.getInstance(); 

     mDatabase = FirebaseDatabase.getInstance().getReference().child("users"); 

     mProgress = new ProgressDialog(this); 

     mNameField = (EditText) findViewById(R.id.nameFied); 
     mEmailField = (EditText) findViewById(R.id.emailField); 
     mPasswordField = (EditText) findViewById(R.id.passwordField); 
     mRegisterBtn = (Button) findViewById(R.id.registerBtn); 

     mRegisterBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startRegister(); 
      } 
     }); 
    } 

    private void startRegister() { 
     final String name = mNameField.getText().toString().trim(); 
     String email = mEmailField.getText().toString().trim(); 
     String password = mPasswordField.getText().toString().trim(); 

     if(!TextUtils.isEmpty(name) && !TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)){ 

      mProgress.setMessage("Signing up...please wait"); 
      mProgress.show(); 

      mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() { 


       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        if (task.isSuccessful()){ 
         String user_id = mAuth.getCurrentUser().getUid(); 
         DatabaseReference current_user_db = mDatabase.child(user_id); 
         current_user_db.child("name").setValue(name); 
         current_user_db.child("image").setValue("default"); 

         mProgress.dismiss(); 

         Intent mainIntent = new Intent(RegisterActivity.this, MainActivity.class); 
         mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(mainIntent); 
        } 
       } 
      }); 
     } 

     if (TextUtils.isEmpty(name) && TextUtils.isEmpty(email) && TextUtils.isEmpty(password)){ 
      Toast.makeText(RegisterActivity.this, "do not leave any field empty", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

Ich weiß nicht, was ich falsch gemacht habe.

Hier sind meine gradle Abhängigkeiten:

compile 'com.google.firebase:firebase-database:9.2.0' 
compile 'com.google.firebase:firebase-auth:9.2.0' 

Antwort

0

versuchen, eine OnFailureListener hinzuzufügen, um zu sehen, welche Ausnahme oder Fehler, den Sie bekommen.

mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() { 


       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        if (task.isSuccessful()){ 
         String user_id = mAuth.getCurrentUser().getUid(); 
         DatabaseReference current_user_db = mDatabase.child(user_id); 
         current_user_db.child("name").setValue(name); 
         current_user_db.child("image").setValue("default"); 

         mProgress.dismiss(); 

         Intent mainIntent = new Intent(RegisterActivity.this, MainActivity.class); 
         mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(mainIntent); 
        } 
       } 
      }).addOnFailureListener(new OnFailureListener() { 
         @Override 
         public void onFailure(@NonNull Exception e) { 
          Log.i("Firebase Exception -> ",e.getMessage()); 
         }}); 
0

Sie erstellen Benutzer mit

createUserWithEmailAndPassword(email, password) 

aber man kann nie melden. Sie müssen sich auch anmelden, nachdem Sie einen Benutzer mit

signInWithEmailAndPassword(email, password) 

erstellt und Daten in Ihre Datenbank eingefügt haben.

Und ich würde vorschlagen, Ihr Repository und Decencies auch zu aktualisieren.