调用Firebase ServerValue.TIMESTAMP

时间:2017-02-01 17:36:45

标签: android firebase firebase-realtime-database timestamp

我正在开发一个连接到firebase实时数据库的android项目。 无论如何,我把timeStamp放在某处。

...
.... 
map2.put("time", ServerValue.TIMESTAMP); 
message_root.updateChildren(map2);

然后我成功地调用了这些数据

    ...
    ...
    chat_time = (Long)((DataSnapshot)i.next()).getValue();
    Calendar calendar = Calendar.getInstance();
    int a = calendar.get(Calendar.HOUR_OF_DAY);
    int b = calendar.get(Calendar.MINUTE);
    int c = calendar.get(Calendar.SECOND);

实施没问题。问题是我无法理解这个值在智能手机和模拟器中是不同的。 对于模拟器中的相同值,它显示(例如)17:16,在智能手机20:16中,当我从firebase控制台查看时,实时数据库中的值相同。 最后,真正的价值是什么?这个值是否根据国家/地区而变化?但我的智能手机和模拟器在同一个国家。我很迷惑。

1 个答案:

答案 0 :(得分:1)

根据Firebase Reference DocsServerValue.TIMESTAMP是:

  

用于自动填充当前时间戳的占位符值(时间   自Firebase数据库以来的Unix纪元,以毫秒为单位   服务器

当我读到你的问题时,我决定在模拟器上试一试。它给了我同样的模拟器和真实设备的价值:我国的当前时间(GMT + 2)。

我也尝试过改变设备的时间。但是,发布到数据库的值仍然是当前时间。 然后,我尝试更改Firebase控制台项目配置中的时区。但价值仍然相同。

如果您说发布的价值相同,但您获得的价值不同,也许您应该告诉我们您是如何显示此值的?