android - 使用 firebase 实时数据库
问题描述
我在应用程序中使用数据库值时遇到问题。我找不到在应用程序中使用它们的方法。
auth = FirebaseAuth.getInstance()
FirebaseUser = auth.getCurrentUser()!!
val uid = auth.getUid()!!
val fireBase = FirebaseDatabase.getInstance()
userRef = fireBase.getReference("users")
val ordersRef = userRef.child("$uid")
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val username = dataSnapshot.child("names").getValue(String::class.java)
val lastname = dataSnapshot.child("lastname").getValue(String::class.java)
Log.d("Data",lastname)
Log.d("Data",username)
}
override fun onCancelled(databaseError: DatabaseError) {
Log.d("Data", databaseError.getMessage()) //Don't ignore errors!
}
}
ordersRef.addValueEventListener(valueEventListener)
这是从 firebase 检索数据的方法。我在 logcat 中得到它:
2020-01-26 15:09:31.480 13943-13943/com.example.odpodstaw D/Data: TestLastname
2020-01-26 15:09:31.480 13943-13943/com.example.odpodstaw D/Data: TestName
我想在 App 中使用它如何获取变量?在 MainActivity 我有
lateinit var name :String
lateinit var lastname :String
如何从数据库中获取值到MainActivityname
和lastname
MainActivity 中?
我只是在学习,我真的不知道如何做到这一点以及如何在我的应用程序中使用这些数据。
解决方案
假设此获取发生在 内部MainActivity
,您可以在接收数据的回调中执行以下操作:
val activity = this@MainActivity
activity.name = name
activity.lastname = lastname
这将设置 MainActivity 上的属性。