使用Firebase Cloud函数获取当前日期和时间

3
我对Firebase Cloud Functions比较陌生,所以不确定我要问的问题是否有效。 我正在开发一个使用Firebase数据库的Android幻想游戏,其中有几个比赛基于比赛的日期和时间有效性开始和结束。 所以我想获取当前日期和时间,以便我可以计算参加比赛的剩余时间并将其保存在数据库中(使用Cloud functions)。 那么,为了获取当前时间,我应该使用类似于“ https://timezonedb.com/api” 的API,还是还有其他方法可以获得时间。 另外,我该如何在TypeScript语言中计算截止日期和当前时间的剩余时间? 我看过很多视频和文档,但无法找到任何方法。 简短的解释和一些有用的链接将非常有帮助。

你并没有详细说明你所编写的代码,想要触发什么样的函数以及整个过程应该如何运作,因此我下面的回答假设你只是想在某个时刻进行调用以获取当前时间点。 - Doug Stevenson
2个回答

10

在Cloud Functions中运行的代码可以相信服务器的时间是准确的。对于在node环境中运行的JavaScript,只需运行Date.now()即可返回自Unix纪元以来以毫秒为单位的时间戳。无需再做其他操作。


2

如果你已经使用了实时数据库,你可以通过使用ServerValue.TIMESTAMP从Firebase获取当前时间,无需使用Cloud Functions。

示例代码片段:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
String key = ref.push().getKey(); // this will create a new unique key
Map<String, Object> value = new HashMap<>();
value.put("name", "shesh");
value.put("address", "lucknow");
value.put("timestamp", ServerValue.TIMESTAMP);
ref.child(key).setValue(value);

只有当客户端通过写入数据库来调用云函数时,这才是相关的,这在问题中没有明确说明。 - Doug Stevenson
Angus Tay,嗨,我不想让代码在应用程序上运行。相反,我想使用Firebase Cloud Function获取当前时间并将时间存储在Firebase数据库中。您能否请检查我的问题的更新版本?我遇到了一些问题。 - Vivek Thakkar
你不可能在云函数中计算并返回所有值,特别是当有成千上万的用户不断查询剩余时间时,这将导致不切实际。最佳做法是使用客户端应用程序进行计算。 - Angus
@DougStevenson 是的,我知道,但我只是建议使用客户端作为云函数有很多限制并且会产生成本的替代方案。根据文档:默认情况下,函数在1分钟后超时,但您可以将此时间延长至9分钟。因此,在我看来,该函数无法在此应用程序中使用。 - Angus
@AngusTay 是的..我认为在我的情况下使用云函数并不更好。我会尝试将其包含在客户端应用程序中..谢谢 - Vivek Thakkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接