Intereting Posts

Firebase-соединение не работает на Linux в SpringBoot

То, что я пытаюсь достичь, – это открыть соединение с моей базой данных firebase и получить некоторые данные, которые мне нужно проанализировать. Я запускаю Spring с платформой Spring Boot, администратором sdk firebase, kotlin и gradle. В Windows 10 он работает, как и ожидалось, но когда я пытаюсь запустить файл .jar на моем Linux-сервере, он не получает никаких данных или ошибок. Он застревает в ValueEventListener. У меня установлен UWW, но отключение его или добавление портов 5228: 5230 (tcp / udp) не решило проблему.

val dataMinifiedRef = database.reference.child("minifiedData").child("areas") dataMinifiedRef.addListenerForSingleValueEvent(object : ValueEventListener { override fun onCancelled(error: DatabaseError?) { log.info(error!!.message) } override fun onDataChange(dataSnapshot: DataSnapshot) { log.info("Got data") } }) 

EDIT: Вот как я разбираю учетную запись службы.

  val str = "{\n" + ... "}\n" // convert String into InputStream val serviceAccount = ByteArrayInputStream(str.toByteArray()) val options = FirebaseOptions.Builder() .setCredentials(GoogleCredentials.fromStream(serviceAccount)) .setDatabaseUrl("https://xxx.firebaseio.com") .build() 

Я получаю следующую ошибку.

 Tue Dec 19 15:31:41 CET 2017 [DEBUG] com.google.firebase.database.connection.PersistentConnection‌​: pc_0 - Trying to fetch auth token Tue Dec 19 15:31:41 CET 2017 [DEBUG] com.google.firebase.database.connection.PersistentConnection‌​: pc_0 - Error fetching token: java.io.IOException: Error getting access token for service account: 

Проблема заключалась в том, что время на нашем Linux-сервере не синхронизировалось автоматически. Я нашел эту статью, где он упомянул об этом решении. Затем я последовал этому руководству и добавил NTP-серверы, которые равны нашему местоположению сервера.