当前位置: 首页 > 面试题库 >

Java当我向Firebase Realtime数据库添加新值时如何保存当前日期/时间

雷骁
2023-03-14
问题内容

通过控制面板向Firebase实时数据库添加新值时,我想在特定字段中保存当前日期/时间。

我该如何实现?


问题答案:

最佳做法是TIMESTAMP像这样保存数据ServerValue.TIMESTAMP

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Map map = new HashMap();
map.put("timestamp", ServerValue.TIMESTAMP);
ref.child("yourNode").updateChildren(map);

还要记住,将设置为时,将其TIMESTAMP设置为Map,但是将其获取时,则将其设置为Long。为了获取数据,我建议您使用以下方法:

public static String getTimeDate(long timestamp){
    try{
        DateFormat dateFormat = getDateTimeInstance();
        Date netDate = (new Date(timestamp));
        return dateFormat.format(netDate);
    } catch(Exception e) {
        return "date";
    }
}

编辑:模型类应如下所示:

public class YourModelClass {
    //private fields
    private Map<String, String> timestamp;

    public YourModelClass() {}

    //public setters and getters for the fields

    public void setTimestamp(Map<String, String> timeStamp) {this.timestamp= timestamp;}
    public Map<String, String> getTimestamp() {return timestamp;}
}

请记住,ServerValue.TIMESTAMPFirebase Realtime Database只是一个令牌,当它在写入操作期间用作子值时,它将转换为服务器端的数字。该日期仅在写入操作完成后才出现在数据库中。

要获取timestamp,还有另一种方法,那就是在Cloud Functions for Firebase中编写一个fronction,它很简单:

exports.currentTime = functions.https.onRequest((req, res) => {
    res.send({"timestamp":new Date().getTime()})
})

您可以将其托管在Cloud Function中,无需用户干预即可获取服务器时间戳。



 类似资料:
  • 问题内容: 通过控制面板将新值添加到Firebase实时数据库时,我想在特定字段中保存当前日期/时间。 我该如何实现? 请帮我。 问题答案: 最好的做法是将您的数据保存为一个TIMESTAMP像这样ServerValue.TIMESTAMP。 还要记住,将设置为时,将其TIMESTAMP设置为Map,但是将其检索时,则将其设置为Long。为了获取数据,我建议您使用以下方法: 编辑:模型类应如下所示

  • 我怎样才能做到这一点? 请帮帮我.

  • 我已经在我的应用程序中添加了一个按钮。当我点击按钮时,当前时间保存到SP。但我想把这个保存到我的firebase数据库里。我怎么能这么做?

  • 我使用Django REST API作为博客的后端,前端单独托管在React中。 我有一个反应前端在云前沿后面,充当CDN。 每当我想在数据库中添加一篇新的博客文章/添加任何新记录时,我都需要使缓存失效,以便它真正出现在网站上。我明白为什么会这样。 我想知道如何避免这种情况,并且在每次我想看到新内容时,不必擦除整个缓存的情况下仍能获得缓存的好处。

  • 问题内容: 我已经看过了,基本上我已经发现Calendar对象可以使用以下类似方法将1个月添加到指定的日期中: 尽管我不喜欢它在日期为30或31时的行为。如果我将1个月添加到01/31/2012,输出将变为02/29/2012。当我再增加1个月时,它将变为03/29/2012。 无论如何,我是否可以强制2012年2月29日自动变为2012年3月1日? 基本上这就是我想发生的事情: 默认日期:01/

  • 问题内容: 用Java获取当前日期/时间的最佳方法是什么? 问题答案: 这取决于你想要的日期/时间形式: 如果你想将日期/时间作为一个单一的数值,则可以用UNIX纪元后的毫秒数(以Java形式)表示。该值是UTC时间点的增量,并且与本地时区无关…假设系统时钟已正确设置。 如果你希望日期/时间的格式允许你以数字方式访问组件(年,月等),则可以使用以下方式之一: 给你一个Date使用当前日期/时间初始