Использование 2 или более БД Firebase Realtime внутри одного занятия - PullRequest
0 голосов
/ 03 мая 2018

Как пользователи плана Blaze, я могу создать несколько экземпляров базы данных, чтобы база данных по умолчанию не зависала при 100 тыс. Одновременных подключений. Дело в том, что я пытаюсь вызвать данные из обеих баз данных, потому что некоторые данные находятся в базе данных 1, а другие - в базе данных 2. Итак, в Котлине я объявил свои экземпляры Firebase следующим образом:

val db: DatabaseReference = FirebaseDatabase.getInstance().reference

Хорошо, приведенная выше строка работает для БД по умолчанию (Databse 1). Обычно, если я хочу вызвать данные из базы данных 2 для другой операции (не этой прямо сейчас), мне нужно включить имя экземпляра, которое является ссылкой HTTPS, в метод getInstance () следующим образом;

val dataBase: DatabaseReference = FirebaseDatabase.getInstance("https://projectName.firebasio.com").reference

В этом случае я попытался использовать это объявление 2, и оно, похоже, выдает мне ошибку.

Прикрепить изображение: 2 DB Instance

Logcat только заявляет, что это E / AndroidRuntime: FATAL EXCEPTION: main и происходит при декальтации второго экземпляра, которая составляет

 val dataBase: DatabaseReference = FirebaseDatabase.getInstance("https://projectName.firebasio.com").reference

Logcat:

Причина: com.google.firebase.database.DatabaseException: Invalid Путь к базе данных Firebase: https // projectName.firebaseio.com. Firebase Пути к базам данных не должны содержать '.', '#', '$', '[' Или ']' на com.google.android.gms.internal.zzepf.zzqn (неизвестный источник: 52) на com.google.android.gms.internal.zzepf.zzqo (неизвестный источник: 13) на com.google.android.gms.internal.zzepd.zzqj (неизвестный источник: 131) на com.google.firebase.database.FirebaseDatabase.getInstance (неизвестно Источник: 45) на com.google.firebase.database.FirebaseDatabase.getInstance (неизвестно Источник: 14) at paackageName.CountryList. (CountryList.kt: 22) в java.lang.Class.newInstance (собственный метод) на android.app.Instrumentation.newActivity (Instrumentation.java:1173) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2708) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2892) atroid.app.ActivityThread.-wrap11 (неизвестный источник: 0) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1593) на android.os.Handler.dispatchMessage (Handler.java:105) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6541) в java.lang.reflect.Method.invoke (родной метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

URL во втором вызове getInstance () недействителен. После https отсутствует двоеточие.

0 голосов
/ 03 мая 2018

Документация для этого может быть найдена здесь: https://firebase.google.com/docs/configure/#support_multiple_environments_in_your_android_application

// Manually configure Firebase Options
FirebaseOptions options = new FirebaseOptions.Builder()
        .setApplicationId("1:27992087142:android:ce3b6448250083d1") // Required for Analytics.
        .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw") // Required for Auth.
        .setDatabaseUrl("https://myproject.firebaseio.com") // Required for RTDB.
        .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...