swift - 如何在 Swift 中将 "add"时间转为 firebase 时间戳?

标签 swift firebase firebase-realtime-database

这个问题最好用一个例子来说明:

现在是上午 9:00。用户希望在第二天下午 4:00 进行事件。他们使用 UIDatePicker 选择第二天下午 4:00,然后点击按钮。我知道 firebase 从 1970 年开始以毫秒为单位计算时间,所以我想要做的是将上午 9:00 到第二天下午 4:00 的毫秒数“添加”到 ServerValue.timestamp() 中,像这样:

 activitiesRef.child(newActivity.id).setValue([ 
    "id": newActivity.id,
    "name": newActivity.name,
    "isActive": newActivity.isActive,
    "locString": newActivity.locationString,
    "locLat": newActivity.locLat,
    "locLong": newActivity.locLong,
    "privacySetting": newActivity.privacySetting,
    "targetTime": ServerValue.timestamp()]) // + some added value of time
    //"targetTime": [".sv": "timestamp"]])

这样做的原因是因为我将在应用程序的其他位置显示倒计时器,直到达到目标时间。如果我可以将 targetTime 推送到 firebase,那么倒计时器将是用户手机上的当前时间与 targetTime 本身的简单比较。

尝试向 ServerValue.timestamp() 添加 double 值时不断收到的错误是“上下文类型“Any”不能与字典文字一起使用”

如果不可能,我还有什么其他选择?谢谢。

最佳答案

ServerValue.timestamp() 不是可用于执行日期算术的数字。这是一个特殊的占位符值,服务器端用其时间感来解释。

您能做的最好的事情就是写入时间戳,将其作为数字读回,然后对其进行数学运算。

关于swift - 如何在 Swift 中将 "add"时间转为 firebase 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47894606/

相关文章:

javascript - 迭代数据库中的对象

ios - 每次出现 View 时都更改我的 TableView 数据源。我应该在哪里做?

ios - 如何在使用 xcode 开发 ios 应用程序时读取 csv 文件

javascript - 使用 Vuefire 检索 Vuejs 中的 Firebase 数据

Firebase使用1个项目将多个子域托管到应用程序目录

javascript - 在检索数据期间对对象进行分组

java - Firebase 检索父项和子项的数据并将其分配给类

ios - 在 UIView 上方添加一个按钮

swift - 想要从数组创建特定的属性值数组

swift - 在 firebase 中将电子邮件域列入白名单