【发布时间】:2018-07-07 18:55:32
【问题描述】:
我正在努力使用onDataChange 访问从数据库返回的信息。我知道这是由于它的异步特性,但我需要将这些值存储在某个地方,以便在代码完成后访问。
我在 Firebase 数据库中存储了一个 user 子级,它存储了 lat 和 lng 位置。然后我的代码按如下方式检索它:
override fun onDataChange(dataSnapshot: DataSnapshot) {
var user: User?
dataSnapshot.children.forEach {
user = it.getValue(User::class.java)
Log.d("Maps::user::lat", user?.lat.toString()) // Has info
Log.d("Maps::user::lng", user?.lng.toString()) // Has info
mMyLocation.latitude = user!!.lat!!
mMyLocation.longitude = user!!.lng!!
}
}
val location = LatLng(mMyLocation.latitude, mMyLocation.longitude) // 0.0 and 0.0
该应用程序不仅有我的位置,还有地图上的其他标记。如果我将所有代码移动到方法内部以显示我的位置,则不会显示在 onMapReady 中设置的其他标记。我需要有关如何完成它的建议。
【问题讨论】:
标签: android firebase-realtime-database kotlin