Я делаю регистрационную форму. хотел отправить данные в базу данных 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