【问题标题】:Get current Date and Time using Firebase Cloud functions [duplicate]使用 Firebase Cloud 函数获取当前日期和时间 [重复]
【发布时间】:2019-02-16 17:12:00
【问题描述】:

我对 Firebase Cloud Functions 非常陌生,所以我不知道我要问的问题是否有效。

所以基本上我正在开发一个 android 幻想游戏(它使用 firebase 数据库),它有几个比赛要根据比赛的日期和时间有效性开始和结束。所以我想获取当前的日期和时间,这样我就可以计算出参加比赛的剩余时间并将其保存在数据库中(使用 CLoud 函数)

所以要获取当前时间,我应该使用像“https://timezonedb.com/api”这样的 API 还是我可以做些什么来获取时间。

另外,给定截止日期和当前时间(TypeScript 语言),我如何计算剩余时间?

我浏览了很多视频和文档,但找不到任何方法。简短的解释和一些有用的链接会很有帮助。

【问题讨论】:

  • 您并没有真正说明您编写的代码,您想要触发什么样的功能,以及整个事情应该如何工作,所以我在下面的回答假设您只是想在某个时间拨打电话以了解当前时间点。

标签: android firebase firebase-realtime-database google-cloud-firestore google-cloud-functions


【解决方案1】:

使用在 Cloud Functions 中运行的代码,您可以相信服务器的时间感是准确的。对于在节点环境中运行的 JavaScript,只需运行 Date.now() 即可返回自 unix 纪元以来的时间戳(以毫秒为单位)。没有什么可做的了。

【讨论】:

    【解决方案2】:

    您可以使用 ServerValue.TIMESTAMP 从 Firebase 获取当前时间,而无需使用 Cloud Functions,因为您已经使用了 Realtime db。

    示例代码sn-p:

    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);
    

    【讨论】:

    • 这仅在客户端通过写入数据库来调用云功能时才相关,这在问题中没有明确说明。
    • Angus Tay 嘿,我不希望代码在应用程序上运行。相反,我想使用 Firebase Cloud Function 获取当前时间并将时间存储在 Firebase 数据库中。你能检查我的问题的更新版本吗?我遇到了一些问题
    • 计算并返回 Cloud Function 中将产生的所有值是不切实际的,尤其是当您有成千上万的用户继续查询剩余时间时。最佳做法是使用客户端应用程序进行计算。
    • @DougStevenson 是的,我知道,但我只是建议使用客户端的替代方案,因为 Cloud Function 有很多限制并且会产生成本。来自文档:默认情况下,函数会在 1 分钟后超时,但您可以将此时间延长至 9 分钟。所以我认为这个功能不能在这个应用程序中使用。
    • @AngusTay 是的。我认为在我的情况下使用云功能不会更好。我会尝试将其包含在客户端应用程序中。谢谢
    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 2016-07-04
    • 2018-09-26
    • 2011-04-27
    • 2012-12-04
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多