我正在尝试使用iOS SDK每3秒轮询一次我的实时数据库,以检索最新的5个消息对象。
我使用以下代码:
let query = rtdb.child("event/ID/chat")
.queryOrdered(byChild: "createdAt")
.queryStarting(atValue: <TIMESTAMP>)
.queryLimited(toFirst: 5)
query.observeOnce(of: eventType) { snapshot in }
假设我的数据库中包含以下(简化的)数据:
{
id: 1,
createdAt: 123456781
},
{
id: 2,
createdAt: 123456782
},
{
id: 3,
createdAt: 123456783
},
{
id: 4,
createdAt: 123456784
},
{
id: 5,
createdAt: 123456785
},
{
id: 6,
createdAt: 123456786
},
我从时间戳123456787
开始查询。然后,我发布另一个带有时间戳123456788
的消息。我的查询没有收到。为什么?
如果我改用时间戳123456782
开始查询,它将返回ID为2, 3, 4, 5
的消息。
我在做什么错了?
更新
这是因为启用了持久性。它只是返回本地缓存的数据。太傻了。