我试图将实时数据库中的一些数据显示到回收器适配器中,但没有运气。我已经让FirebaseRecyclerAdapter在另一个活动(java)上运行,但在这个上它只是不起作用(kotlin)。奇怪的是,如果我使用ValueEventListener,数据返回就好了,但FirebaseRecyclerAdapter不起作用。
CLASS:
class FriendsActivity : AppCompatActivity() {
private lateinit var friendsDb: DatabaseReference
private var currentUser: FirebaseUser? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_friends)
supportActionBar?.title = "Friends"
friends_main_rec.layoutManager = LinearLayoutManager(this)
friends_main_rec.setHasFixedSize(true)
currentUser = FirebaseAuth.getInstance().currentUser
friendsDb = FirebaseDatabase.getInstance().reference.child("FRIENDS")
.child(currentUser!!.uid)
val friendsRecyclerViewAdapter = object : FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(
Friends::class.java,
R.layout.friend_single,
FriendsViewHolder::class.java,
friendsDb) {
override fun populateViewHolder(viewHolder: FriendsViewHolder, model: Friends, position: Int) {
Log.d("FriendsList", model.toString())
viewHolder.setDate(model.date)
}
}
friends_main_rec.adapter = friendsRecyclerViewAdapter
}
class FriendsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun setDate(date: String) {
itemView.friend_single_date.text = date
Log.d("FriendsList", date)
}
}
POJO:
data class Friends(var date: String)
代码对我来说似乎很好,但显然它不正确。
答案 0 :(得分:0)
这一行似乎存在一些问题
friendsDb = FirebaseDatabase.getInstance().reference.child("FRIENDS")
.child(currentUser!!.uid)
在这里它将从&#34; FRIENDS / currentUser.uid&#34; 获得价值, 这是
之一您无法从此处直接访问 date
对象,因为日期属于freind用户ID