【问题标题】:Firebase + Swift: How to observe childAdded with WHERE clause?Firebase + Swift:如何使用 WHERE 子句观察 childAdded?
【发布时间】:2016-11-02 02:57:48
【问题描述】:

我有一个想听的问题:

  1. 在订单表上
  2. 其中 order.location_id = "abc123"

如何添加 WHERE 子句?

FIRDatabase.database().reference(withPath: "orders").observe(.childAdded, with: { (orderSnapshot) in
  print(orderSnapshot)
})

我知道我可以在收到快照之后而不是之前进行过滤,但这会贵很多

【问题讨论】:

    标签: ios oauth


    【解决方案1】:

    Firebase 没有您在 Swift 中所期望的 WHERE 子句,而是在您观察的路径上创建查询。这允许您从数据库中过滤数据。

    在您的情况下,如果您想要 "where" order.location_id = "abc123" 那么您将需要在您的参考中使用 queryEqualToValue 方法。

    由于您还没有告诉我们您的数据结构是什么样的,我猜您可以这样做:

    FIRDatabase.database().reference(withPath: "orders").queryEqual(toValue: "abc123")
    

    这只是一个示例,向您展示 queryEqualToValue 关键字如何允许您根据相等性过滤数据。

    祝你好运!

    【讨论】:

    • queryEqual(toValue: "abc123") 怎么知道我希望 location_id 等于 "abc123" 而不是另一个字段(order.name、order.whatever)?
    • @Edmund Hmm.. 也许您需要使用 .child 语法更深入地挖掘您的数据,例如 .reference(withPath: orders).child(orderId).child(location_id).queryEqual ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2018-04-23
    • 2018-10-11
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多