0

我正在註冊一個屏幕。註冊活動不工作,程序不斷顯示進度條

該應用程序運行,但是當我點擊「註冊」時,進度條顯示並永不結束。

此註冊活動編程爲將名稱圖像和名稱帶到firebase的數據庫,並將電子郵件和密碼發送到身份驗證。

package com.example.syyam.saifapplication; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.v7.app.AppCompatActivity; 
import android.text.TextUtils; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

import com.google.android.gms.tasks.OnCompleteListener; 
import com.google.android.gms.tasks.Task; 
import com.google.firebase.auth.AuthResult; 
import com.google.firebase.auth.FirebaseAuth; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

public class RegisterActivity extends AppCompatActivity { 

    private EditText mNameField; 
    private EditText mEmailField; 
    private EditText mPasswordField; 
    private FirebaseAuth mAuth; 
    private Button mRegisterButton; 
    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"); 

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

     mProgress=new ProgressDialog(this); 
     mRegisterButton.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("Registering User"); 
      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(); 
        } 
       } 
      }); 
     } 
    } 
} 

回答

1

如果登錄失敗,您的進度欄不會消失。

檢查你的回報:加入的onComplete(此代碼),建立自己的應用程序

if (!task.isSuccessful()) { 
    Toast.makeText(RegisterActivity.this, "fail", 
         Toast.LENGTH_SHORT).show(); 
    mProgress.dismiss(); 
}