2017-12-19 4 views
-1

내가 시도하고자하는 것은 firebase 데이터베이스에 대한 연결을 열고 구문 분석해야하는 데이터를 얻는 것입니다. Spring 부트 프레임 워크, firebase의 admin sdk, kotlin 및 gradle을 사용하여 Spring을 실행하고 있습니다. Windows 10에서는 예상대로 작동하지만 Linux 서버에서 .jar 파일을 실행하려고하면 데이터 나 오류가 발생하지 않습니다. ValueEventListener에서 멈추게됩니다. ufw가 설치되었지만 포트 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") 
     } 
    }) 

편집 : 이 내가 서비스 계정을 구문 분석하는 방법이다.

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: 
+1

무엇이 잘못 될지 말하기 어렵습니다. 그러나 디버그 로깅을 사용하도록 설정 한 경우 (https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/database/FirebaseDatabase.html#setLogLevel (com.google.firebase.database) .Logger.Level)) 출력에 단서가 생길 수 있습니다. –

+0

당신에게 "got data"라는 로그를 주었습니까? –

+0

아니요, 로그가 보이지 않습니다 –

답변

0

Linux 서버의 시간이 자동으로 동기화되지 않는 것이 문제였습니다. 나는 이것이 해결책을 언급 한 곳인 article을 발견했다. 그 다음이 guide에 따라 서버 위치와 동일한 NTP 서버가 추가되었습니다.

관련 문제