如何将 TimeAgo 格式与 firestore 或实时数据库一起使用?
How to use TimeAgo format with firestore or realtime database?
我正在使用 Github Library 以 TextView
的格式显示时间,如刚才、昨天、前一段时间...等。它显示我想要的时间。但问题是时间并没有像刚才在post的那一刻那样改变——它永远保持不变。
型号 class 用于 post 适配器
class Post {
private var date: String = ""
constructor(date: Long) {
fun getDate(): String
{
return date
}
//Initialization according to the library
val timeInMillis = System.currentTimeMillis()
val timeAgo = TimeAgo.using(timeInMillis)
//saving the data to firestore
val fStore: FirebaseFirestore = FirebaseFirestore.getInstance()
val post = Post(title, description, date = timeAgo)
fStore.collection("Posts").document()
.set(post)
.addOnSuccessListener{...}
正在从 Firestore
中检索数据
private fun postInfo(title: TextView, description: TextView, date: TextView) {
val postRef = FirebaseFirestore.getInstance().collection("Posts").document()
postRef.get()
.addOnSuccessListener { documentSnapshot ->
if (documentSnapshot != null && documentSnapshot.exists()) {
val post = documentSnapshot.toObject(Post::class.java)
date.text = post?.getDate()
title.text = post?.getTitle()
description.text = post?.getDescription()
}
}
}
您所做的是使用库将日期转换为字符串,然后将 TextView 文本设置为该字符串。字符串只是字符列表,它们没有 "consciousness" 关于它们的含义或是否需要 change/update。
我建议使用 android-ago
中的 RelativeTimeTextView
。一旦您为该视图设置了参考时间,其中的一些代码会自动为您触发更新。
https://github.com/curioustechizen/android-ago
编辑:您还在 firestore 中存储时从 timeInMillis: Long
转换为 date: String
。您应该按原样存储 timeInMillis(Long 值),然后在阅读时将其用作 relativeTimetextView.setReferenceTime(timeInMillis)
.
的参数
我正在使用 Github Library 以 TextView
的格式显示时间,如刚才、昨天、前一段时间...等。它显示我想要的时间。但问题是时间并没有像刚才在post的那一刻那样改变——它永远保持不变。
型号 class 用于 post 适配器
class Post {
private var date: String = ""
constructor(date: Long) {
fun getDate(): String
{
return date
}
//Initialization according to the library
val timeInMillis = System.currentTimeMillis()
val timeAgo = TimeAgo.using(timeInMillis)
//saving the data to firestore
val fStore: FirebaseFirestore = FirebaseFirestore.getInstance()
val post = Post(title, description, date = timeAgo)
fStore.collection("Posts").document()
.set(post)
.addOnSuccessListener{...}
正在从 Firestore
private fun postInfo(title: TextView, description: TextView, date: TextView) {
val postRef = FirebaseFirestore.getInstance().collection("Posts").document()
postRef.get()
.addOnSuccessListener { documentSnapshot ->
if (documentSnapshot != null && documentSnapshot.exists()) {
val post = documentSnapshot.toObject(Post::class.java)
date.text = post?.getDate()
title.text = post?.getTitle()
description.text = post?.getDescription()
}
}
}
您所做的是使用库将日期转换为字符串,然后将 TextView 文本设置为该字符串。字符串只是字符列表,它们没有 "consciousness" 关于它们的含义或是否需要 change/update。
我建议使用 android-ago
中的 RelativeTimeTextView
。一旦您为该视图设置了参考时间,其中的一些代码会自动为您触发更新。
https://github.com/curioustechizen/android-ago
编辑:您还在 firestore 中存储时从 timeInMillis: Long
转换为 date: String
。您应该按原样存储 timeInMillis(Long 值),然后在阅读时将其用作 relativeTimetextView.setReferenceTime(timeInMillis)
.