【问题标题】:Number of times data snapshot is received接收数据快照的次数
【发布时间】:2020-12-22 06:23:43
【问题描述】:
mAuth.currentUser?.uid?.let {
    FirebaseDatabase.getInstance().getReference().child("users").child(it).child("snaps")
        .addChildEventListener(object: ChildEventListener{
            override fun onChildAdded(snapshot: DataSnapshot, previousChildName: String?) {
                emails.add(snapshot.child("from").value as String)
                snaps.add(snapshot)
                adapter.notifyDataSetChanged()
            }

在上面的代码中,我从 firebase 数据库中获取了快照。我在snaps 下有 2 个孩子。

我的问题是dataSnapshot 是否包含所有孩子作为一个,或者我会得到 2 个dataSnapshot,其中每个快照代表一个孩子?

也就是说snaps数组列表大小是1还是2?

【问题讨论】:

    标签: android firebase kotlin firebase-realtime-database


    【解决方案1】:

    对于此代码,it 将是当前登录用户的 UID。该代码将向“users/{it}”下名为“snaps”的子节点添加一个监听器。

    提供的回调将不会收到“用户”下任何其他孩子的更新。换句话说,它不会看到其他用户的快照。有多少用户并不重要。

    将为用户的“快照”子级下的每个现有子级调用一次回调,然后为将来对任何子级的更改再次调用。

    这是您可以通过添加日志来观察自己的所有行为。

    【讨论】:

    • 错误地我输入了用户而不是快照。无论如何,我的问题是,考虑快照下有 2 个孩子,然后数据快照包含两个孩子,或者会有 2 个数据快照,每个快照代表 1 个孩子?
    • 正如我在回答中所说:“回调将为用户的“快照”子级下的每个现有子级调用一次,然后再次为任何子级的未来更改调用。并且:“这是您可以通过添加日志来观察自己的所有行为。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多