Я использую Firebase Admin SDK и получаю эту ошибку во время выполнения:

Error:(22, 36) java: cannot access com.google.auth.Credentials
class file for com.google.auth.Credentials not found

Это конструктор, который выдает ошибку

import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.database.*;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;

class Database{

private FirebaseDatabase firebaseDatabase;

Database(){

    InputStream serviceAccount = Database.class.getResourceAsStream("reading-incentive-firebase-adminsdk-n556s-1b742e4b58.json");

    FirebaseOptions options;
    try {
        options = new FirebaseOptions.Builder()
                .setCredentials( GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl("https://reading-incentive.firebaseio.com")
                .build();
        FirebaseApp.initializeApp(options);
    } catch (IOException e) {
        e.printStackTrace();
        System.out.println("Error loading database");
    }

    firebaseDatabase = FirebaseDatabase.getInstance();

}

}

Это строка 22

.setCredentials (GoogleCredentials.fromStream (serviceAccount))

Я использую java sdk 1.8 в IntelliJ вместе с gradle. Я читал другие сообщения и читал, что использование sdk 1.8 вместо 1.7 вызывает ошибку, но я не могу найти решение. Вот мой файл build.gradle ...

group 'src'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'com.google.firebase:firebase-admin:6.5.0'
}

Спасибо за любую помощь.

6
Andrew Heschl 5 Окт 2018 в 21:31

1 ответ

Лучший ответ

У меня была такая же проблема некоторое время назад, когда я пытался интегрировать firebase в наш проект движка приложений. Это вызвано какой-то временной зависимостью вашего приложения в библиотеках Google.

Пожалуйста, попробуйте эти вещи,

Если вы используете более раннюю версию appengine-api, обновите ее до appengine-api-1.0-sdk-1.9.64.jar или выше.

Затем проверьте свои зависимости. если вы используете один из них,

google-oauth-client-1.22.0.jar
google-oauth-client-appengine-1.22.0.jar
google-oauth-client-servlet-1.22.0.jar

Это могло быть конфликтом. попробуйте удалить их (они могут вам не понадобиться). Надеюсь, поможет.

2
Sankha Karunasekara 5 Окт 2018 в 20:39