Я хочу знать, как я могу получить различную информацию о пользователе в одном действии. В моем случае у меня есть активность в профиле, и я хочу, чтобы, когда я нажимал на кнопку профиля, он извлекал мою информацию из Firestore с моим идентификатором FirebaseAuth, а когда я искал другого пользователя и нажимал на его профиль, это нацеливало меня на активность профиля, поэтому я и сделал что, и это работает так хорошо, но проблема в том, что когда я выхожу и снова авторизируюсь, появляется моя старая информация, и когда я нажимаю кнопку «Назад» и после того, как возвращаюсь к активности профиля, теперь она показывает мне мою информацию, поэтому я не понимаю поэтому моя информация не отображается сразу после входа в систему.
private lateinit var profileId: String //initialization...
в onCreate ...
firebaseUser= FirebaseAuth.getInstance().currentUser!!
val pref = getSharedPreferences("PREF", Context.MODE_PRIVATE)
if (pref != null)
{
this.profileId = pref.getString("profileId", "none").toString()
}
onStop ...
override fun onStop() {
super.onStop()
val pref = getSharedPreferences("PREF", Context.MODE_PRIVATE)?.edit()
pref?.putString("profileId", firebaseUser.uid)
pref?.apply()
}
метод для получения информация как userInfo вызывается в oncreate
private fun userInfo() {
val userRef = FirebaseFirestore.getInstance().collection("Users").document(profileId)
userRef.get()
.addOnSuccessListener { documentSnapshot ->
if (documentSnapshot != null && documentSnapshot.exists()) {
val user = documentSnapshot.toObject(User::class.java)
profile_fullname?.text = user.getFullname()
profile_about?.text = user.getAbout()
}
}
}
И вот как я собираюсь перейти от адаптера к другому пользователю (активность профиля).
holder.itemView.setOnClickListener {
val pref = mContext.getSharedPreferences("PREF", Context.MODE_PRIVATE).edit()
pref.putString("profileId", user.getUid())
pref.apply()
val intent = Intent(mContext, ProfileActivity::class.java )
mContext.startActivity(intent)
}
И это операция выхода из системы
logoutButton.setOnClickListener {
FirebaseAuth.getInstance().signOut()
val intent = Intent(this@EditProfileActivity, LoginActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()
}