Android 使用firebase实时数据库
我在应用程序中使用数据库值时遇到问题。 我找不到在应用程序中使用它们的方法Android 使用firebase实时数据库,android,firebase,kotlin,firebase-realtime-database,Android,Firebase,Kotlin,Firebase Realtime Database,我在应用程序中使用数据库值时遇到问题。 我找不到在应用程序中使用它们的方法 auth = FirebaseAuth.getInstance() FirebaseUser = auth.getCurrentUser()!! val uid = auth.getUid()!! val fireBase = FirebaseDatabase.getInstance() userRef = fireBase.getReference("u
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
我想在应用程序中使用它
如何把它送到varable?
在我的主要活动中
lateinit变量名称:String
lateinit var lastname:String
如何在MainActivity中从数据库获取值到name
和lastname
我只是在学习,我真的不知道如何做到这一点,以及如何在我的应用程序中使用这些数据 假设此提取发生在
main活动中,您可以在接收数据的回调中执行以下操作:
val activity = this@MainActivity
activity.name = name
activity.lastname = lastname
这将设置MainActivity的属性。假设此提取发生在MainActivity
中,您可以在接收数据的回调中执行以下操作:
val activity = this@MainActivity
activity.name = name
activity.lastname = lastname
这将设置MainActivity的属性。我还不明白。我需要在MainActivity中获取“TestLastname”值为lastname
,在MainActivity中获取“TestName”值为name
,我还不明白。我需要在MainActivity中将“TestLastname”值设置为lastname
,在MainActivity中将“TestName”值设置为name
,这听起来像是在尝试使用onDataChange
之外的值,这是不可能的。有关原因的更多信息,以及如何在这样的情况下仍然拥有可维护的代码,请参见这里的两个答案,一个是回调,另一个是使用协程。听起来您试图使用onDataChange
之外的值,这是不可能的。关于为什么会这样,以及如何在这样的情况下仍然拥有可维护代码的更多信息,请参见这里的两个答案,一个是回调,另一个是使用协同路由。