当前位置: 首页 > 面试题库 >

使用Swift 3的Firebase计算孩子的数量

史宸
2023-03-14
问题内容

我有一个字符串数组,我正在尝试通过Firebase填充它。它是一个聊天应用程序,当用户创建房间时,他或她将房间命名。当用户登录并进入登录页面时,它会查询他或她正在参与的所有房间,我希望该房间能填充表格视图。在firebase文档中,我找到了childrenCount,但似乎无法正常工作。到目前为止,这是我尝试过的

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    let ref = firebase.child("users").child(fUID).child("participating")

    ref.observe(.value, with: { (snapshot: FIRDataSnapshot!) in
        print(snapshot.childrenCount)
        rooms.count = snapshot.childrenCount
    })

    return rooms.count
}

我得到一个错误,即计数是仅获得属性。我如何填充该数组计数?


问题答案:

Firebase数据是异步加载(和同步)的。这很容易查看是否添加了一些调试日志记录:

let ref = firebase.child("users").child(fUID).child("participating")

print("Starting observing");
ref.observe(.value, with: { (snapshot: FIRDataSnapshot!) in
    print("Got snapshot");
    print(snapshot.childrenCount)
    rooms.count = snapshot.childrenCount
})

print("Returning count");
return rooms.count

运行此代码段时,日志记录输出为:

开始观察

退货计数

得到快照

这可能不是您期望输出的顺序。这也解释了为什么计数永远不会正确:数据尚未加载,因此无法计数。

这就是Firebase侦听器使用回调块的原因:在同步数据时调用该块。



 类似资料:
  • 我想在我的用户列表中找到最年轻的用户并加载他们的数据:姓名、个人资料图片和当前工作分配。我已经阅读了有关查询数据的Firebase入门,但它们的示例对我不适用,因为我的数据组织方式不同。我有一个额外的子层。 这是我在Firebase中的JSON树: 我尝试加载用户列表,然后对其进行迭代以找到最年轻的用户,但这似乎有些过头了。Firebase文档让我觉得应该能够通过Firebase方法进行查询,比如

  • 我试图在节点panadol和profinal中获取这些值。但它不起作用。我成功地得到了日期。这是我的密码 MedicineListActivity.orderIds-

  • 问题内容: 我在父容器中有两个子元素,如下所示: 我尝试了以下CSS: 我怎样才能让两个孩子()都达到最高的孩子的身高? 问题答案: 一种解决方案是将后代元素的显示值从更改为:

  • 这样不仅可以将转移页面的子元素放入数组,还可以将子元素的子元素放入数组。

  • 我对编码相当陌生。我的“count句子”功能有问题。我将字符串与“.”进行比较,"?" , 和数一句话。无论字符串中有多少标点符号,它都只向句子计数器添加一个。我是否使用strcmp错误地获得了我想要的结果?是否有其他方法可以实现这一点?

  • 本文向大家介绍使用JavaScript计算数字的除数,包括了使用JavaScript计算数字的除数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个数字并返回其除数的计数。 输入 输出 因为除数是- 示例 以下是代码- 输出结果