【问题标题】:Store Time efficiently in Firebase Database?在 Firebase 数据库中有效地存储时间?
【发布时间】:2015-07-06 11:28:21
【问题描述】:

我只是想知道,有没有办法使用 Swift 在 Firebase 中存储时间?我问的原因是因为我想制作一个应用程序,当我创建一个特定的对象时,该对象将启动一个计时器,该计时器从它创建时的 24 小时开始倒计时。当这 24 小时到期时,该对象将被删除。我还想显示一个倒数计时器,以显示对象在删除之前还剩下多长时间。

我尝试将小时和分钟以整数形式存储到我的数据库中,但这似乎效率不高,因为我必须担心上午/下午,并且可能还要担心今天是哪一天。我也在考虑将日期存储为字符串,但这似乎很难弄清楚如何不断地将字符串更改为整数并减少以这种方式显示倒计时的时间。

我查看了FirebaseServerValue.timestamp(),但似乎无法将其存储到 Firebase 中。关于如何实现这一点是否有任何提示或想法?谢谢。

编辑:尝试将FirebaseServerValue.timestamp() 存储到 Firebase:

    self.firebaseRef.childByAutoId().setValue([
        "individualId":individualId.text,
        "timeCreated": FirebaseServerValue.timestamp()
        ])

但是我收到一条错误消息,提示 '_' is not convertible to 'StringLiteralConvertible'。我试图查看时间戳是否有任何方法可以将其转换为字符串或整数,但找不到任何我认为对自动完成有用的东西。

【问题讨论】:

  • “我已经查看了FirebaseServerValue.timestamp(),但我似乎无法将其存储到 Firebase 中”鉴于此功能专门用于存储时间戳,您可以展示您的代码吗?
  • @FrankvanPuffelen 我在原始帖子中展示了如何使用 Firebase 存储时间戳。

标签: ios swift date firebase countdown


【解决方案1】:

您可以使用时间间隔并将其存储为数字

var interval = NSDate().timeIntervalSince1970

当你需要日期时,就这样得到它

var date = NSDate(timeIntervalSince1970: interval)

【讨论】:

  • 这很好用,有没有办法将它存储为字符串? Firebase 似乎只接受字符串..
  • 如果您使用的是 Swift,请使用 "\(interval)",或者使用 Objective-C 格式的字符串,例如 [NSString stringWithFormat:@"%f", interval];
  • 我正在使用 Swift,当我尝试使用 "\(interval)" 方法时,它似乎不起作用。这是我如何尝试存储它的一个示例:self.firebaseRef.childByAutoId().setValue([ "individualId":individualId.text, "timeCreated": "\(interval)" ]) 但我收到一条错误消息说Expected ',' seperator
  • 是的,感谢您的帮助。
  • Firebase 不仅接受字符串。这是荒谬的,因为the guide 使用数字、布尔值和对象,而the API 与此相矛盾。此外,使用 NSDate 取决于设备的日期/时间,可能会有漂移/差异。在移动设备上问题不大,但服务器时间戳仍然比 NSDate 更可靠和一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多