【问题标题】:FIrebase onDisconnect handler with timestamp not setting correct timestamp带有时间戳的 FIrebase onDisconnect 处理程序未设置正确的时间戳
【发布时间】:2019-04-01 15:46:50
【问题描述】:

我正在使用 Firebase 实时数据库创建在线状态,但 onDisconnect 函数没有设置正确的时间戳,它设置了 onDisconnect 函数创建/加载时间的时间戳。

我正在使用以下代码:

func setStatusToOnline(forUser user: User) {
    let selfUserRef = Database.database().reference(withPath: "users/\(user.uid)")
    selfUserRef.updateChildValues(["online": true])

    selfUserRef.onDisconnectUpdateChildValues(["online": false, "last_online": Int(Date.timeIntervalSinceReferenceDate*1000000)]) { (error, ref) in
        if let error = error {
            print(error)
        }
    }
}

当函数 setStatusToOnline(user: User) 被调用时,例如时间戳 575825661026887(= 575825661026887/1000000 秒)并且用户在几分钟后断开连接,它将设置 575825661026887 而不是当前时间戳。

有没有办法设置正确的时间戳?

【问题讨论】:

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

之所以在评估时设置日期是因为您必须将一个完全创建的对象传递给onDisconnectUpdateChildValues。它不能有任何延迟执行属性,因为名称和值必须在调用时解决,而不是在断开连接时解决。

【讨论】:

猜你喜欢
  • 2014-04-21
  • 2012-09-09
  • 2020-05-11
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多