Есть ли способ исправить ошибку «Не будет предпринята попытка повторного подключения. Причина: База данных живет в другом регионе». в Android Studio с Firebase

# #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 , надеюсь, это может сработать