如何在Swift中为firebase时间戳“添加”时间?

问题描述 投票:0回答:1

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

现在是上午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()添加double值时遇到的错误是“Contextual type'Any'不能与字典文字一起使用”

如果不可能这样做,我还有其他选择吗?谢谢。

swift firebase firebase-realtime-database
1个回答
0
投票

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

您可以做的最好的事情是编写时间戳,将其作为数字读回,然后对其执行数学运算。

© www.soinside.com 2019 - 2024. All rights reserved.