Я загрузил все 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.
Пожалуйста, помогите !!!Заранее спасибо