【问题标题】:How to get Time at which data is posted in firebase如何获取数据在firebase中发布的时间
【发布时间】:2017-10-03 02:08:46
【问题描述】:

我正在制作一个包含 RecyclerViewCardView 的应用。 当数据发布到 Firebase 中时,它应该在 RecyclerView 中显示时间。 例如4 小时前发布,几分钟前发布,等等......

如何实现呢?

【问题讨论】:

  • 数据是否从您的应用发布到 Firebase?
  • 是的,数据是通过应用发布的

标签: android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

Firebase 中没有auto-created 元数据关于节点的创建、更新、删除或创建者等信息。如果您需要此类数据,则需要创建自己的机制。您可以通过写入本地时间戳或写入server-side timestamp 来添加它。

【讨论】:

  • 谢谢你我会试试的
  • 好的,让我知道。
  • 您能否提供一个代码,以便在发布新数据时发送通知
  • 这基本上是另一个问题。为了遵守本社区的规则,请发布另一个新问题,以便我和其他用户可以帮助您。我的回答对您提出最初的问题有帮助吗?
  • 是的,它有帮助,我会发布另一个问题
【解决方案2】:

很有可能。如果您提供代码 sn-p 用于编辑建议,那将是最好的。 在这种情况下使用我的。我会发一个有标题和时间的帖子。

在处理 Firebase 帖子的适配器中,像这样添加时间

公开课帖{

private String Title;
private long Time;

public post(String title){
    Title = title;
    Time = new Date().getTime();
}

public post(){}

public String getTitle() {return Title;}
public void setTitle(String title) {this.Title = title;}
public long getTime() {return Time;}
public void setTime(long time) {this.Time = time;}

}

现在,当您发布帖子时,您将拥有以毫秒为单位的值标题和时间,并且您不必调用时间。它是自动添加的。

FirebaseDatabase.getInstance()
                .getReference(staticPath)
                .push()
                .setValue(new post(Title));

在recyclerview上显示你的数据时,你会正常获取数据

viewHolder.showPosts(model.getTitle(), model.getTime());

并在您展示的示例中将时间设置为

timeText.setText(DateUtils.getRelativeTimeSpanString(time,
                    System.currentTimeMillis(), DateUtils.MINUTE_IN_MILLIS));

用你的手机测试并在不同时间发两个帖子,它会以格式显示时间(4分钟前)。如果时间超过 6 天,它将显示日期。

【讨论】:

  • 嘿,这对我不起作用。它只显示。 1990 年 1 月 1 日。在每个帖子上
  • @user7593511 这是因为设备的日期错误。使用您的手机。显示该日期意味着它正在工作,这是最早的毫秒日期
  • 是您正在获取的具有 title="title" 和 time=875456423 的节点
  • 不,我们可以做一件事,而不是从用户那里花时间,我们可以从 firebase 服务器获取它并以所需的格式显示它
  • 不,您必须注册发布帖子的时间。它不是内置的
猜你喜欢
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2018-10-18
相关资源
最近更新 更多