【发布时间】: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