无法将数据发送到Firebase数据库。进度对话框继续无限加载

时间:2019-06-29 14:35:38

标签: android firebase firebase-realtime-database

我正在填写注册表格。想要将数据发送到Firebase数据库。我已应用进度对话框来检查进度。但是firebase无法正常工作...每次调用Oncancelled方法。

我尝试禁用进度对话框。检查了我的代码很多次,没有错误。 Firebase连接正确

    private void CreateAccount()
    {
    String name = reg_name.getText().toString();
    String phone = reg_phone.getText().toString();
    String password = reg_paswd.getText().toString();

    if (TextUtils.isEmpty(name))
    {
        Toast.makeText(this, "Please write your name...", 
    Toast.LENGTH_SHORT).show();
    }
    else if (TextUtils.isEmpty(phone))
    {
        Toast.makeText(this, "Please write your phone number...", 
    Toast.LENGTH_SHORT).show();
    }
    else if (TextUtils.isEmpty(password))
    {
        Toast.makeText(this, "Please write your password...", 
       Toast.LENGTH_SHORT).show();
    }
    else
    {
        loadingBar.setTitle("Creating Account");
        loadingBar.setMessage("Please wait, while we are checking the 
        credentials.");
        loadingBar.setCanceledOnTouchOutside(false);
        loadingBar.show();

        ValidatephoneNumber(name, phone, password);
    }
}



               private void ValidatephoneNumber(final String name, final 
          String phone, final String password)
{

       final DatabaseReference RootRef;
           RootRef = FirebaseDatabase.getInstance().getReference();

        RootRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot)
        {
            if (!(dataSnapshot.child("Users").child(phone).exists()))
            {
                HashMap<String, Object> userdataMap = new HashMap<>();
                userdataMap.put("phone", phone);
                userdataMap.put("password", password);
                userdataMap.put("name", name);



        RootRef.child("Users").child(phone).updateChildren(userdataMap)
                        .addOnCompleteListener(new 
                            OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> 
                            task)
                            {
                                if (task.isSuccessful())
                                {
                                    Toast.makeText(RegisterActivity.this, 
                               "Congratulations, your account has been 
                            created.", Toast.LENGTH_SHORT).show();
                                     loadingBar.dismiss();

                                    Intent intent = new 
                    Intent(RegisterActivity.this, login.class);
                                    startActivity(intent);
                                }
                                else
                                {
                                    loadingBar.dismiss();
                                    Toast.makeText(RegisterActivity.this, 
        "Network Error: Please try again after some time...", 
           Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
            }
            else
            {
                Toast.makeText(RegisterActivity.this, "This " + phone + " 
              already exists.", Toast.LENGTH_SHORT).show();
                loadingBar.dismiss();
                Toast.makeText(RegisterActivity.this, "Please try again 
             using another phone number.", Toast.LENGTH_SHORT).show();

                Intent intent = new Intent(RegisterActivity.this, 
                MainActivity.class);
                startActivity(intent);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

           Toast.makeText(RegisterActivity.this,"Error sending the data 
           to servers",Toast.LENGTH_SHORT).show();
        }
    });
} }

我希望表单将数据发送到Firebase数据库

0 个答案:

没有答案