내가 시도하고자하는 것은 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:
무엇이 잘못 될지 말하기 어렵습니다. 그러나 디버그 로깅을 사용하도록 설정 한 경우 (https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/database/FirebaseDatabase.html#setLogLevel (com.google.firebase.database) .Logger.Level)) 출력에 단서가 생길 수 있습니다. –
당신에게 "got data"라는 로그를 주었습니까? –
아니요, 로그가 보이지 않습니다 –