gpt4 book ai didi

swift - Firebase:观察 childAdded 返回现有/旧记录?

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:38 25 4
gpt4 key购买 nike

我有一个查询(用 swift 写的):

    FIRDatabase.database().reference(withPath: "\(ORDERS_PATH)/\(lId)")
.child("orders")
.observe(.childAdded, with: { firebaseSnapshot in

let orderObject = firebaseSnapshot.value as! [String: AnyObject]

let order = AppState.Order(
title: orderObject["name"] as! String,
subtitle: orderObject["item_variation_name"] as! String,
createdAt: Date(timeIntervalSince1970: TimeInterval(orderObject["created_at"] as! Int / 1000)),
name: "name",
status: AppState.Order.Status.Pending
)

f(order)
})

我的数据库是这样的:

enter image description here

我希望它只听所有新的传入订单。但是,每次初始加载时,它都会获取一堆现有订单,这不是我想要的。

我确实在每个订单上都有一个 created_at(一个代表那个时间的整数,例如 1478637444000),所以如果有一个可以利用它的解决方案也可以。

我的查询有问题吗?

最佳答案

观察者总是触发一次并读入“所有数据”。

.value 观察者一次读取节点中的所有内容,作为 .childAdded 观察者(来自文档)

This event is triggered once for each existing child and then again every time a new child is added to the specified path.

如果您考虑您的问题,您实际上正在寻找的是您所有数据的子集。这是通过查询实现的。

您的查询将是观察在特定时间戳后发生的所有 .childAdded 事件。这就是您需要做的!

利用 queryStartingAtValue(开始的时间戳)制作一个观察查询,它将返回在该时间戳之后添加的所有子项。

关于swift - Firebase:观察 childAdded 返回现有/旧记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com