반응형
안녕하세요.
오늘은 간단하게 Firebase Realtime Database가 안잡히는 경우에 대해서 삽질결과를 공유합니다.
저의 경우 개발중인 앱의 속도를 위해서 Realtime Database 생성시 데이터베이스의 위치를 가장 가까운 싱가포르(asia-southeast1) 로 지정했습니다.
이것이 코드에서 Database를 못 불러오는 이유중에 하나였는데요,
Realtime Database의 위치가 us-central1이 아닌경우, Firebase를 초기화 하는 과정이 조금 다르다고 합니다.
us-central1인경우 다음과 같이 코드를 작성하면 DatabaseReference를 읽을 수 있습니다.
val database = Firebase.database()
val databaseReference = database.getReference("root")
databaseReference.child("data").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
Logger.d("onDataChange called. snapshot: ${snapshot.toString()}")
}
override fun onCancelled(error: DatabaseError) {
Logger.d("onCancelled called. error: ${error.message}")
}
})
us-central1이 아닌경우 다음과 같이 Firebase 초기화시 필요합니다.
Firebase.database 선언시 자신의 RealtimeDatabase 주소를 적어야합니다.
val database = Firebase.database("https://your_app_name-default-rtdb.asia-southeast1.firebasedatabase.app")
val databaseReference = database.getReference("root")
databaseReference.child("data").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
Logger.d("onDataChange called. snapshot: ${snapshot.toString()}")
}
override fun onCancelled(error: DatabaseError) {
Logger.d("onCancelled called. error: ${error.message}")
}
})
반응형