Я работаю над проектом, который до сих пор использовал базу данных Firebase в реальном времени. Но теперь я хочу переключиться на облачное хранилище, поэтому я преобразовал хранилище пользователя в хранилище и отключил базу данных в реальном времени. Но теперь в этой ситуации я застрял. я читал некоторые do c из firebase, но все еще запутался как новичок ie.
private fun checkFollowingStatus(uid: String, followButton: Button)
{
val followingRef = firebaseUser?.uid.let { it1 ->
FirebaseDatabase.getInstance().reference
.child("Follow").child(it1.toString())
.child("Following")
}
followingRef.addValueEventListener(object : ValueEventListener
{
override fun onDataChange(datasnapshot: DataSnapshot) {
if (datasnapshot.child(uid).exists()) {
followButton.text = "Following"
}
else{
followButton.text = "Follow"
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
Это работало очень хорошо в базе данных реального времени, но во время преобразования базы данных я попробовал приведенный ниже код, но застрял здесь.
private fun checkFollowingStatus(uid: String, followButton: Button)
{
val followingRef = firebaseUser?.uid.let { it1 ->
FirebaseFirestore.getInstance()
.collection("Follow").document(it1.toString())
.collection("Following")
}
followingRef.addSnapshotListener(object : EventListener<QuerySnapshot>{
override fun onEvent(p0: QuerySnapshot?, p1: FirebaseFirestoreException?) {
if (datasnapshot.child(uid).exists()) { //error: unresolved reference datasnapshot
followButton.text = "Following"
}
else{
followButton.text = "Follow"
}
}
})
}
Я просто хочу, чтобы, когда пользователь нажимал при нажатии кнопки пользовательский идентификатор пользователя сохраняется в следующей коллекции и в соответствии с этим текстом кнопки изменяется.