0
我试图在firebase数据库上运行查询,如果用户处于离线状态,我想显示弹出式窗口,提示用户再次尝试。但是,脱机时查询不会返回。Firebase数据库查询在离线时不返回
databaseRef.queryEqual(toValue: "someValue").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
print(snapshot) //this is never called when user is offline
}) { (error) in
print(error) //neither is this
}
运行此查询并检测用户是否脱机的最佳策略是什么?
谢谢Puf!你会推荐什么作为最好(最安全)的方法。 1)就像在你的回答中一样,如果连接不上,查询Firebase客户端是否连接并禁止查询,或者2)尝试查询,如果查询在X秒内未返回,那么认为它失败并删除观察者? – Nilsymbol
除非我需要基于时间的事情,否则我绝对不会使用超时。情况并非如此。如果位置是全新的并且在客户端创建,请考虑通过调用'setValue(nil)'来启动位置。这样客户就知道没有价值并且会开火。我最近在这里回答了一个非常类似的问题:http://stackoverflow.com/questions/42430992/firebase-ondatachange-not-called-when-offline/42431732#42431732 –