【问题标题】:Filter in specific firebase structure在特定的 Firebase 结构中过滤
【发布时间】:2019-05-26 22:46:51
【问题描述】:

我正在寻找如何过滤我的 Firebase 的方法。我知道堆栈溢出有很多示例,但我的配置不同 - 见下文:

我获取数据的代码是:

let usersDatabaseRef = Database.database().reference().child("usersDatabase").child(userID).child("Customers")
    usersDatabaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
        for child in snapshot.children {
            let childSnap = child as! DataSnapshot
            let userCustomerSnap = childSnap

            for customer in userCustomerSnap.children.allObjects as! [DataSnapshot] {
                let customerSnap = customer
                let dict = customerSnap.value as! [String: Any]

                let employee = dict["Assigned employee"]

然后我将员工附加到我的模型。 是否可以按员工在 tableView 中过滤我的单元格? (当我点击带有员工名称的按钮时,tableView 应该只显示其服务)

【问题讨论】:

  • 这种结构会遇到很多问题,并且不清楚在这个用例中“过滤器”是什么意思。您是在问是否可以查询包含单个员工的节点?或者是其他东西?实际上,您正在获取 Customer 中的所有子节点,因此您可以将每个子节点的数据放入一个对象中,将这些对象存储在一个数组中并“过滤”它们。但这就是你要问的吗?
  • 关于使用电子邮件地址作为密钥存在一些争论,但对我来说,我不鼓励这样做。见emails as keys are evil。此外,如果 Alice Glockam 结婚并改名为 Alice Smith;你会怎样做?好吧,您必须查找、删除并重新创建数据库中引用 Alice Glockam 的每个节点。
  • 哦 - 数据可能太深了,所以你可能想denormalize它。最后,请在问题中包含文本而不是图像的结构。

标签: ios swift firebase firebase-realtime-database tableview


【解决方案1】:

以这种方式构建您的数据库。如果您需要更多帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多