当前位置: 首页 > 知识库问答 >
问题:

自从我上次使用Swift从firebase调用一个函数以来,我如何只检索自动ID。

董建茗
2023-03-14

我的firebase数据库的结构如下:

events
  autoid
    event name: "" 
    event date: "" 
  autoid
    event name: "" 
    event date: "" 
func getEvents() {

        self.dispatchGroup.enter()
      Database.database().reference().child("Events").observe(DataEventType.value, with: { (snapshot) in
            if let dictionary = snapshot.children.allObjects as? [DataSnapshot] {
              //  self.dispatchGroup.enter()
                for child in dictionary {
                    let eventid = child.key
                    self.eventsArray.append(eventid)
                   // print(eventid)
                    //                    print(self.eventsArray)


                }
                self.dispatchGroup.leave()
                print(self.eventsArray)

            }

        })
    }

我想知道如何在返回视图时检索现有的自动ID和添加的任何新的自动ID。我试过了。ChildAdded但它返回事件名称,事件日期等,我需要自动ID。

我是firebase和swift的新手,所以欢迎任何提示或建议!

共有1个答案

华甫
2023-03-14

如果希望首先处理初始数据,然后只得到新数据的通知,则通常需要查找.ChildAdded事件。

Database.database().reference().child("Events").observe(DataEventType.childAdded, with: { (snapshot) in
    let eventid = snapshot.key
    print(eventid)
    self.eventsArray.append(eventid)
    self.dispatchGroup.leave()
    print(self.eventsArray)
}

首次运行此代码时,.ChildAddAdd事件将针对每个现有子节点激发。之后,每当添加新的子项时,它就会激发。类似地,您可以侦听.childChanged.childremoved事件来处理这些事件。

 类似资料:
  • 我有一个名为发票的类和一个MongoRepository,我想要的是从我的mongo数据库中提取所有经过验证的发票(那些在给定时间范围内创建的),所以这里是我的mongo仓库: 不要太注意查询它只是为了测试,但问题是当我运行这个,我有这个错误:嵌套异常是org.springframework.data.mapping.属性引用异常:没有找到类型发票的属性测试请求! 我认为问题在于该方法返回了一个

  • 本文向大家介绍我们如何从MATLAB调用Python函数?,包括了我们如何从MATLAB调用Python函数?的使用技巧和注意事项,需要的朋友参考一下 Python库现已在MATLAB中提供(自2014b起)。如果我们使用的是2014b或更高版本,则可以直接在MATLAB中运行代码。 这样就可以在MATLAB中使用python模块。无需进行任何其他更改,只需在要使用的python库名称之前添加“

  • 我有一张JTABLE。为JTable中的一列分配了一个显示扩展JComboBox的扩展TableCellEditor。 挑战: 设计JComboBoxes使任何选择相对于其他框都是唯一的?也就是说,如果从第一行的组合框中选择了“a”,则会自动将其从其他组合框的列表中删除。 将新房间添加到表中时,它包含的组合框应自动填充到第一个可用列表项。 问题是:我的组合框工作得很好。我可以随意挑选物品。我甚至在

  • 问题内容: 该useEffect阵营钩将运行在功能上传递的每一个变化。可以对其进行优化,使其仅在所需属性更改时调用。 如果我想从中调用初始化函数而不在更改时再次调用该怎么办?假设我要加载一个实体,但是加载功能不需要组件中的任何数据。我们如何使用钩子做到这一点? 使用钩子可能看起来像这样: 问题答案: 如果只想在初始渲染后运行给定的函数,则可以给它一个空数组作为第二个参数。

  • 我做这个任务已经有一段时间了;很好的1-2天,我想我第一节课上的一切都是正确的,那是我为Java制作的。作业要我做的是在第一节课中进行方法和计算,然后在第二节课中调用它。我做了第二个类,我试图让用户输入购买物品的数量,然后它会显示出来 购买的金额 我做了;在第二个类中,扫描仪用来保存输入的数字量,以及一个系统。出来用户将要购买的金额的println。但是我如何从另一个类调用这个方法呢?我试过以下方