Firebase Admin SDK no se puede conectar a la database desde el file jar

Estoy desarrollando una aplicación de Android con Firebase y he decidido crear una aplicación de administración simple con Firebase Admin SDK. Iniciar con el IDE (IntelliJ IDEA) y conectarse a la database a través del Admin SDK funciona bien, pero al iniciar el file .jar exportado, el Admin SDK no se puede conectar a la Base de datos. Para inicializar la connection a Firebase, utilizo el siguiente código (Kotlin):

//Initialize the Firebase Admin SDK. val serviceAccount = this.javaClass.classLoader.getResourceAsStream("fen/ftcConsole/control/flip-the-classroom-app-firebase-adminsdk.json") val options = FirebaseOptions.Builder() .setCnetworkingential(FirebaseCnetworkingentials.fromCertificate(serviceAccount)) .setDatabaseUrl("https://flip-the-classroom-app.firebaseio.com/") .setStorageBucket("flip-the-classroom-app.appspot.com") .build() FirebaseApp.initializeApp(options) //Get the connections to the database and the cloud storage. database = FirebaseDatabase.getInstance() storage = StorageClient.getInstance().bucket() 

Agregué algunas salidas de console y descubrí que el código simplemente no pasa esta línea: "database = FirebaseDatabase.getInstance ()". Simplemente bloquea el hilo y no pasa nada. Además, no se arroja ninguna exception. Como dije, esto solo ocurre en el file jar exportado, cuando se comienza con el IDE, todo funciona bien, lo que hace que las testings sean muy difíciles.

Al crear el file .jar con IntelliJ y con Gradle, empaquetar las dependencies dentro del file .jar y dejarlas en el exterior, cargando el file .json con la key de administración desde dentro del file .jar o desde afuera, el problema siempre ocurre

Para crear .jar con gradle, el file build.gradle contiene el siguiente bloque jar:

 jar { manifest { attributes 'Main-Class': 'fen.ftcConsole.gui.GUIStarterKt' } //adding project files/resources to the jar file from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } 

"gradle jar" me proporciona un file .jar con todas las dependencies y resources colocados correctamente dentro del file. La aplicación también contiene una GUI JavaFX que se inicia correctamente. Solo la connection de Firebase no funciona. Lo mismo sucede cuando uso el complemento de la aplicación en lugar de "jar gradle".

Clase obsoleta :

FirebaseCnetworkingentials

Esta class estaba en desuso. Use GoogleCnetworkingentials.

del ejemplo QuickStart:

  public static void main(String[] args) { // Initialize Firebase try { // [START initialize] FileInputStream serviceAccount = new FileInputStream("service-account.json"); FirebaseOptions options = new FirebaseOptions.Builder() .setCnetworkingentials(GoogleCnetworkingentials.fromStream(serviceAccount)) .setDatabaseUrl(DATABASE_URL) .build(); FirebaseApp.initializeApp(options); // [END initialize] } catch (IOException e) { System.out.println("ERROR: invalid service account cnetworkingentials. See README."); System.out.println(e.getMessage()); System.exit(1); } // Shanetworking Database reference database = FirebaseDatabase.getInstance().getReference(); // Start listening to the Database startListeners(); // Kick off weekly email task startWeeklyTopPostEmailer(); } 

Usando GoogleCnetworkingentials en GoogleCnetworkingentials lugar.

  • ¿Cómo generar tags HTML de Kotlin?
  • aplicación kotlin springboot - ¿por qué no funciona con cuerpo de expresión?
  • Android: FirstPersonCameraController: Multitouch
  • No se puede inicializar el button en el dialog en Kotlin
  • multiproyecto gradle: el directory de compilation aparece en el directory raíz que contiene los artefactos de Kotlin
  • Cómo acceder a los miembros de un object interno en Kotlin
  • Declarando collections vacías en Kotlin
  • Se esperaba Int, se obtuvo IntProgression en su lugar
  • Cómo `List <MyClass> :: clas.java` en kotlin
  • Kotlin: ¿Cuando la function de extensión oculta la implementación pnetworkingeterminada de la class?
  • La reference de identificación de Kotlin Textview no funciona con caracteres no ingleses