2016-10-13 78 views
0

我使用Firebase身份验证创建了注册活动,但是当我运行应用程序并单击注册按钮时,什么也没有发生。只有进度对话框,只是旋转,甚至没有注册。Firebase授权错误

这里是我的代码:

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(); 
     } 
    } 
} 

我不知道我做错了什么。

这里是我的依赖关系的gradle:

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

回答

0

尝试添加OnFailureListener,看看有什么异常或错误您得到。

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

您与

createUserWithEmailAndPassword(email, password) 

创建用户,但你永远不登录。您还需要在创建用户后登录

signInWithEmailAndPassword(email, password) 

并将数据添加到您的数据库。

而且我会建议更新您的存储库和decencies也。