android - android kotlin-firebase(关注者的 nb 和关注者的 nb 未显示在设置活动中)
问题描述
首先,我有一个设置 activity.kt,用于显示每个在线用户的关注者数量和关注者数量。我还有一个名为 searchFragment.kt 的片段,其中包含应用程序中的所有用户,其中每个用户都是一个相对布局。此片段调用 usersAdapter 类以在回收站视图中显示用户,并带有一个关注按钮,当在线用户转向关注跟随另一个随机用户
这是 UsersAdpater 类中 OnBindViewHolder() 方法的代码:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val users = mUsers[position]
holder.usernameResources.text = users!!.getUsername()
Picasso.get().load(users.getProfile()).placeholder(R.drawable.username).into(holder.profile)
holder.lastMessageTxt.text = users.getBio()
mAuth = FirebaseAuth.getInstance()
firebaseUserId = mAuth.currentUser!!.uid
holder.profile.setOnClickListener {
val intent = Intent(mContext, ViewFullImage::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
intent.putExtra("VisitUserId", users.getUid())
mContext.startActivity(intent)
}
holder.followbutton.setOnClickListener {
if (holder.followbutton.text == "Follow") {
val followingRef =
FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com")
.reference.child("Follow").child(firebaseUserId).child("Following")
.child(users.getUid()!!).setValue(true)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
val followerRef =
FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com")
.reference.child("Follow").child(users.getUid()!!)
.child("Followers").child(firebaseUserId).setValue(true)
}
}
} else {
val followingRef =
FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com")
.reference.child("Follow").child(firebaseUserId).child("Following")
.child(users.getUid()!!).removeValue()
.addOnCompleteListener { task ->
if (task.isSuccessful) {
val followerRef =
FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com")
.reference.child("Follow").child(users.getUid()!!)
.child("Followers").child(firebaseUserId).removeValue()
}
}
}
}
这段代码运行得很好,它在 firebase 数据库中创建了引用以及后续和后续过程
但问题出在 settings.kt 文件中,我想在其中显示关注者和关注者的 nb 这是 settings.kt 代码有什么问题?settings.kt 代码:
private var firebaseUserId:String=""
mAuth=FirebaseAuth.getInstance()
firebaseUserId=mAuth.currentUser!!.uid
private fun getFollowing() {
val followingRef =
FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com").reference.child("Follow").child(firebaseUserId).child("Following")
followingRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
if(p0.exists()){
following_number.text=p0.childrenCount.toString()
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
private fun getFollowers() {
val followersRef = FirebaseDatabase.getInstance("https://online-chat-541f3-default-rtdb.firebaseio.com").reference.child("Follow").child(firebaseUserId).child("Followers")
followersRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
if(p0.exists()){
followers_number.text=p0.childrenCount.toString()
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
注意:followers_number 是一个文本视图,默认为 0,显示关注者的 nb
解决方案
试试这个查询
private lateinit var followersRef: DatabaseReference;
followersRef = Firebase.database.reference.child("Follow").child(firebaseUserId).child("Followers");
val listener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
}
override fun onCancelled(databaseError: DatabaseError) {
}
}
followersRef.addValueEventListener(listener);
推荐阅读
- android - ViewPager 上的 RemoveView 功能不起作用
- javascript - 为什么我的 element.classList.add 工作但切换不起作用?
- prolog - 序言替换列表中的元素
- regex - 正则表达式:匹配第一次出现的带有字符“a”的单词
- ios - 如何在 ReactiveCocoa 9.0 中使用 SignalProducer.timer
- xslt-1.0 - XSLT 1.0 分组示例
- node.js - 为什么不打开 package.json 中的调试器 ndb?
- javascript - 如何让html、js、css计算器上的负数输出显示为红色?
- java - 如何解决“org.name1.name2.name3;” 进口?
- python - 为值切片一个 findall() 列表