iOS/Firebase:使用queryStartingAtValue和NSDate()。timeIntervalSince1970不返回任何结果
我试图查询具有时间戳的最新对象,该时间戳不是由服务器创建的。不幸的是,在使用iOS/Firebase:使用queryStartingAtValue和NSDate()。timeIntervalSince1970不返回任何结果,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我试图查询具有时间戳的最新对象,该时间戳不是由服务器创建的。不幸的是,在使用NSDate()时,观察者没有按预期触发新消息。即使没有错误消息,timeintervalnce1970: let timestampQueryValue = NSDate().timeIntervalSince1970 * 1000 let messagesRef = self.ref.child("messages").child(chatId) messagesRef .
NSDate()时,观察者没有按预期触发新消息。即使没有错误消息,timeintervalnce1970
:
let timestampQueryValue = NSDate().timeIntervalSince1970 * 1000
let messagesRef = self.ref.child("messages").child(chatId)
messagesRef
.queryOrderedByChild("timestamp")
.queryLimitedToLast(500)
.queryStartingAtValue(timestampQueryValue) // if commented out, new messages show up alongside older ones
.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
// ...
})
我使用的是
Firebase 3.4.0
当使用NSDate()时,观察者没有按预期开火。timeIntervalSince1970
或NSDate()。timeIntervalSince1970*1000
?当使用NSDate()时还有,1970*1000
如代码所示。为了确定,对象上是否有时间戳
字段?好的,我想我找到了原因:由NSDate()创建的时间戳。timeInterv此外,1970*1000
比服务器时间提前一小时。这就是为什么没有新消息出现的原因。但是在queryStartingAtValue
中使用FIRServerValue.timestamp()
会抛出错误。你知道如何处理这个问题吗?