这个问题最好在一个例子中说明:
现在是上午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'不能与字典文字一起使用”
如果不可能这样做,我还有其他选择吗?谢谢。
ServerValue.timestamp()不是可用于执行日期算术的数字。它是一个特殊的占位符值,服务器端用它的时间感来解释。
您可以做的最好的事情是编写时间戳,将其作为数字读回,然后对其执行数学运算。