Java.lang.NoSuchMethodError при использовании FirebaseOptions.Builder для подключения java к firebase

Я загрузил все jar-файлы зависимостей firebase maven (которые мы получаем при использовании groupID com.google.firebase с artifactID firebase-admin с версией 6.2.0) в динамический веб-проект. Затем я использовал код из документации firebase для Java для подключения к firebase. Вот код документации:

public class FirebaseUpdater {

public static void main(String[] args){
    FileInputStream serviceAccount;
    try {
        serviceAccount = new 
                FileInputStream("C:/Users/Asus/workspace/"
                        + "school1/schoolbackup_service.json");
        //FileInputStream("path/to/serviceAccountKey.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl("https://schoolbackup-f2429.firebaseio.com/")
                .build();

        FirebaseApp.initializeApp(options);

        // As an admin, the app has access to read and write all data, regardless of Security Rules
        DatabaseReference ref = FirebaseDatabase.getInstance()
            .getReference("restricted_access/secret_document");
        ref.addListenerForSingleValueEvent(new ValueEventListener() {

          public void onDataChange(DataSnapshot dataSnapshot) {
            Object document = dataSnapshot.getValue();
            System.out.println(document);
          }

          public void onCancelled(DatabaseError error) {
          }
        });

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

Однако я получаю следующую ошибку для функции FirebaseOptions.Builder:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.Iterables.getFirst(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object;
at com.google.auth.oauth2.OAuth2Credentials.getFromServiceLoader(OAuth2Credentials.java:291)
at com.google.auth.oauth2.ServiceAccountCredentials.<init>(ServiceAccountCredentials.java:165)
at com.google.auth.oauth2.ServiceAccountCredentials.fromPkcs8(ServiceAccountCredentials.java:266)
at com.google.auth.oauth2.ServiceAccountCredentials.fromJson(ServiceAccountCredentials.java:195)
at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:160)
at com.google.auth.oauth2.GoogleCredentials.fromStream(GoogleCredentials.java:127)
at FirebaseUpdater.main(FirebaseUpdater.java:25)

Вот папка со списком моих зависимостей для com.google.firebase. Все они добавлены в мои справочные библиотеки.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Что я делаю неправильно? Это какая-то недостающая банка? Разве баночки не должны быть в справочных библиотеках? Не следует ли мне использовать зависимости maven для динамического веб-проекта? Или это то, что я даже не могу использовать подключение к firebase в проектах, отличных от gradle и не maven? И как можно обойти эту проблему? Потому что я отчаянно нуждаюсь в подключении Java-Firebase.

Пожалуйста помоги!!! заранее спасибо

google-auth-library-java получает другую версию Гуава, чем она была скомпилирована.
Bhesh Gurung 04.06.2018 16:49

Так что мне делать, сэр? Это зависимости, которые я получил автоматически, когда использовал проект maven для извлечения зависимостей java-firebase.

Himanshu Naidu 04.06.2018 18:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
156
0

Другие вопросы по теме