【发布时间】:2020-07-08 20:02:52
【问题描述】:
我已经学习了 3 周的 Kotlin,所以我想从我的 Firebase 数据库中读取数据。
这是写入数据的 MainActivity.kt。
val database = Firebase.database
val latitude = latitude.text.toString().toDouble()
val reflatitude = database.getReference("/user/time/$currenttime/latitude")
//saved location to the Firebase Database
reflatitude.setValue(latitude)
.addOnSuccessListener {
Log.d("MainActivity", "Saved the diary latitude to Firebase Database")
}
它运行良好,但是当我想从另一个活动(如 MapActivity)中调用它时。它仍然存在一些问题。
val database = Firebase.database
val reflatitude = database.getReference("/user/time/$currenttime/latitude")
reflatitude.addValueEventListener(object :ValueEventListener){
override fun onDataChange(dataSnapshot: DataSnapshot){
val latitude= dataSnapshot.getValue<Double>()
}
override fun onCancelled(error: DatabaseError) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException())
}
}
我的 Ref 无法读取数据。
我得到的错误:
期待一个类体
@NonNull public open fun addValueEventListener(@NonNull p0: ValueEventListener) 的参数过多:com.google.firebase.database.DatabaseReference 中定义的 ValueEventListener
修饰符“覆盖”不适用于“局部函数”
fun getValue(): Any? 不需要类型参数?
修饰符“覆盖”不适用于“局部函数”
无法访问“TAG”:它在“AppCompatActivity”中是不可见的(在超类型中是私有的)
【问题讨论】:
-
你的错误是什么?
-
期待一个类体
-
@NonNull public open fun addValueEventListener(@NonNull p0: ValueEventListener) 的参数太多:com.google.firebase.database.DatabaseReference 中定义的 ValueEventListener
-
修饰符 'override' 不适用于 'local function'
-
fun getValue() 没有类型参数:Any?
标签: android firebase kotlin firebase-realtime-database