我如何"添加"时间到Swift的firebase时间戳?

时间:2017-12-19 20:20:44

标签: swift firebase firebase-realtime-database

这个问题最好在一个例子中说明:

目前是上午9点。用户想在第二天下午4点开始活动。他们使用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。如果我可以将targetTime推送到firebase,那么倒数计时器将是用户手机上当前时间与targetTime本身的简单比较。

我在尝试向ServerValue.timestamp()添加双值时遇到的错误是"上下文类型'任何'不能与字典文字"

一起使用

如果无法这样做,我还有其他选择吗?谢谢。

1 个答案:

答案 0 :(得分:0)

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

你能做的最好的事情是写下时间戳,把它作为数字读回来,然后对它进行数学运算。