Недостаток вызова FirebaseApp.initializeApp более одного раза? - PullRequest
0 голосов
/ 02 января 2019

Просто простой вопрос сегодня.Есть ли недостаток в двойном вызове FirebaseApp.initializeApp?

Мы используем городской дирижабль sdk, который обрабатывает инициализацию, но мы заметили некоторые сбои, поступающие из фоновых служб, потому что FirebaseApp.initializeApp не был вызван.

Мое решение - поместить FirebaseApp.initializeApp в наш класс приложения.Просто хочу убедиться, что это не вызовет проблем с SDK, выполняющим тот же вызов.

Заранее спасибо!

1 Ответ

0 голосов
/ 02 января 2019

Вы можете увидеть, что FirebaseApp.initializeApp делает, щелкнув по команде или элементу управления в своей реализации в Android Studio:

public static FirebaseApp initializeApp(Context context) {
    Object var1 = LOCK;
    synchronized(LOCK) {
        if (INSTANCES.containsKey("[DEFAULT]")) {
            return getInstance();
        } else {
            FirebaseOptions firebaseOptions = FirebaseOptions.fromResource(context);
            if (firebaseOptions == null) {
                Log.d("FirebaseApp", "Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.");
                return null;
            } else {
                return initializeApp(context, firebaseOptions);
            }
        }
    }
}

Как видите, если приложение по умолчанию было предварительно инициализировано, его экземпляр возвращается, и больше ничего не происходит. Так что, если есть и обратная сторона, это то, что вы только что проделали ненужную работу.

Но вам никогда не придется вызывать его вручную, если вы выполняете стандартную интеграцию, поскольку он будет автоматически вызываться при запуске через ContentProvider, который будет инициализироваться перед любой другой деятельностью или службой. Вы можете прочитать больше об этом в этом блоге .

...