【问题标题】:FirebaseRecyclerAdapter - populateViewHolder not accessing dataFirebaseRecyclerAdapter - populateViewHolder 不访问数据
【发布时间】:2018-06-18 16:47:05
【问题描述】:

我正在尝试将我的实时数据库中的一些数据显示到回收器适配器中,但没有成功。我已经让 FirebaseRecyclerAdapter 在另一个活动(java)上工作,但在这个活动上它只是不起作用(kotlin)。奇怪的是,如果我使用 ValueEventListener 数据返回就好了,但 FirebaseRecyclerAdapter 不起作用。

类:

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)

代码对我来说似乎很好,但显然它不正确。

【问题讨论】:

    标签: android firebase firebase-realtime-database kotlin firebaseui


    【解决方案1】:

    这行好像有问题

    friendsDb = FirebaseDatabase.getInstance().reference.child("FRIENDS")
                    .child(currentUser!!.uid)
    

    这里会从“FRIENDS/currentUser.uid”获取价值, 哪个是

    • NBHxxxxxxxxxxxxxxxON2
    • it3xxxxxxxxxxxxxxxfj1

    不能从这里直接访问 date 对象,因为日期在朋友用户 ID 下

    【讨论】:

    • 我试过这个 friendsDb = FirebaseDatabase.getInstance().reference.child("FRIENDS") .child(currentUser!!.uid).child("it3jrOcDw1aNQe2vTWtJPeASpfj1") 但也不起作用。
    • 你确定 currentUser!!.uid 是 "NBHxxxxxxxxxxxxxxxON2" 吗?
    猜你喜欢
    • 2023-03-07
    • 2016-11-10
    • 2018-04-02
    • 2017-01-09
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多