# #android #firebase #firebase-realtime-database
Вопрос:
Когда я пытаюсь зарегистрироваться в своем приложении, индикатор выполнения просто работает бесконечно, потому что мое приложение не может получить доступ к базе данных. Я попробовал несколько решений для получения обновленного googles-services.json
файла и изменения URL-адреса в своем коде, но, похоже, ничего не работает.
Ошибка, которая возникает:
W/PersistentConnection: соединение с базой данных pc_0 — Firebase было принудительно отключено сервером. Не будет пытаться подключиться повторно. Причина: База данных живет в другом регионе. Пожалуйста, измените URL-адрес своей базы данных
progressBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(email,mobile)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
RegData user = new RegData(name, email, mobile);
FirebaseDatabase.getInstance("https://bioapps-customer-services-default-rtdb.asia-southeast1.firebasedatabase.app/");
FirebaseDatabase.getInstance().getReference().child("RegData")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(SignUpActivity.this, "Registration Successful",Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}else{
Toast.makeText(SignUpActivity.this, "Registration Failed, Please Try Again",Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}else{
Toast.makeText(SignUpActivity.this, "Registration Failed, Please Try Again",Toast.LENGTH_LONG).show();
progressBar.setVisibility(View.GONE);
}
}
});
}
}
Ответ №1:
Хочу добавить к ответу @Frank.
Даже после загрузки обновленного google-services.json
файла или изменения URL-адреса вручную это может не сработать.
В этом случае нам придется удалить папки build
и в .dart_tool
папке нашего проекта и снова скомпилировать приложение после остановки.
Потому что даже после изменения google-services.json
файла изменения не происходят (как это произошло в моем случае.).
Ответ №2:
Вам нужно передавать URL-адрес каждый раз , когда вы звоните FirebaseDatabase.getInstance()
, а не только первый.
Так:
FirebaseDatabase db = FirebaseDatabase.getInstance("https://bioapps-customer-services-default-rtdb.asia-southeast1.firebasedatabase.app/");
db.getReference().child("RegData")
Кроме того, вы также можете загрузить обновленную google-services.json
версию и добавить ее в свое приложение. Если там указан правильный URL-адрес, SDK будет считывать его оттуда при вызове FirebaseDatabase.getInstance()
без аргументов.
Комментарии:
1. Большое вам спасибо, добрый сэр, сработало отлично, надеюсь, это поможет всем, кто сталкивается с той же проблемой
Ответ №3:
После загрузки нового google-services.json
вам нужно запустить flutter clean
, надеюсь, это может сработать