无法从 firebase 获取最近 30 天的数据
Unable to fetch tha last 30 days data from firebase
我正在尝试从 firebase 获取最近 30 天的帖子,并且我正在尝试使用帖子中的时间戳来这样做。但我无法获取数据。
Kotlin 代码:
var database:DatabaseReference=Firebase.database.reference
database.orderByChild("timestamp")
val postListener = object : ValueEventListener {
@RequiresApi(Build.VERSION_CODES.O)
override fun onDataChange(dataSnapshot: DataSnapshot) {
// Get Post object and use the values to update the UI
for(postSnapshot in dataSnapshot.children)
{
if(postSnapshot.child("timestamp").value.toString().toInt()>Time.from(Instant.now().minusSeconds(30*24*60*60)).toString().toInt())
{
val Post = postSnapshot.getValue(PostsModel::class.java)
postsList.add(Post!!)
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Timber.d("failed")
}
}
Firebase 数据结构:
你需要添加一个条件,时间必须是一个月前,然后你会产生一个合适的数据列表。错误也可能在您未提供的另一个级别(数据组织或可能您没有连接监听器)
Firebase.database.reference
.whereGreaterThan("timestamp", Calendar.getInstance().also { it.add(Calendar.MONTH, -1) }.timeInMillis)
您声明了一个侦听器,但并未将其附加到数据库。直到您调用 addValueEventListener
、addListenerForSingleValueEvent
或 get()
.
我建议研究 reading data 上的 Firebase 文档,因为它展示了如何执行这些操作。
我正在尝试从 firebase 获取最近 30 天的帖子,并且我正在尝试使用帖子中的时间戳来这样做。但我无法获取数据。
Kotlin 代码:
var database:DatabaseReference=Firebase.database.reference
database.orderByChild("timestamp")
val postListener = object : ValueEventListener {
@RequiresApi(Build.VERSION_CODES.O)
override fun onDataChange(dataSnapshot: DataSnapshot) {
// Get Post object and use the values to update the UI
for(postSnapshot in dataSnapshot.children)
{
if(postSnapshot.child("timestamp").value.toString().toInt()>Time.from(Instant.now().minusSeconds(30*24*60*60)).toString().toInt())
{
val Post = postSnapshot.getValue(PostsModel::class.java)
postsList.add(Post!!)
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Timber.d("failed")
}
}
Firebase 数据结构:
你需要添加一个条件,时间必须是一个月前,然后你会产生一个合适的数据列表。错误也可能在您未提供的另一个级别(数据组织或可能您没有连接监听器)
Firebase.database.reference
.whereGreaterThan("timestamp", Calendar.getInstance().also { it.add(Calendar.MONTH, -1) }.timeInMillis)
您声明了一个侦听器,但并未将其附加到数据库。直到您调用 addValueEventListener
、addListenerForSingleValueEvent
或 get()
.
我建议研究 reading data 上的 Firebase 文档,因为它展示了如何执行这些操作。