【发布时间】:2021-11-22 03:02:29
【问题描述】:
我刚刚开始从here 学习Cloud Tasks。在那篇博文中,Doug 说:“我希望 expirationAtSeconds 成为以 epoch seconds 表示的过期时间”。
我希望任务在设置时间后删除帖子。在我的 iOS 应用中,我创建了一个在特定时间过期的帖子:
let timeStamp = Date().timeIntervalSince1970
let postDate: Date = Date(timeIntervalSince1970: timeStamp)
var expirationDate: Date? = Calendar.current.date(byAdding: .hour, value: +24, to: postDate)
guard let exp = expirationDate else { return }
let expiresAt = exp.timeIntervalSince1970
dict.updateValue(expiresAt, forKey: "expiresAt")
dict.updateValue(timeStamp, forKey: "postDate")
// other values ...
ref.updateChildValues(dict)
这给了我一个数据库值,例如:
posts
some_post_Id
-"expiresAt": 1632627680.340107
// other values ...
在我的云函数中,我想要 expiresAt 日期,它是以 Epoch 秒表示的 Double。我不确定是否应该使用 expDate1、expDate2、expDate3 或 expDate4:
exports.onCreatePost = functions.database.ref('/posts/{postId}').onCreate((snapshot, context) => {
const post = snapshot.data();
const expiresAt = snapshot.child("expiresAt").val();
const expirationDate = expiresAt.valueOf(); // 1632627680.340107
var expDate1 = DateTime.fromMillisecondsSinceEpoch(expirationDate * 1000)
var expDate2 = DateTime.fromMicrosecondsSinceEpoch(expirationDate * 1000000)
var expDate3 = DateTime.fromMicrosecondsSinceEpoch(expirationDate.microsecondsSinceEpoch)
var expDate4 = expirationDate.toDate()
const expirationAtSeconds = either expDate1, expDate2, expDate3, or expDate4
// continue on with the rest of the code ...
});
【问题讨论】:
-
你试过
expDate1和其他的吗?他们怎么了? -
@Jesper 我仍在处理博客文章中的代码。我什至还没有机会运行它,因为我正在慢慢尝试理解其他所有内容。 Javascript 对我来说不是原生的,在我阅读了 Doug 的那句话后,我发现了 4 个不同的答案,所以我不知道该从哪个中选择。但根据您的问题,
expDate1似乎是最佳选择。我可以从这里使用打印语句弄清楚。谢谢!
标签: javascript ios swift firebase firebase-realtime-database