我需要添加当前日期到firebase实时数据库与其他数据和检索kotlin android与日期的所有数据



我尝试向Firebase实时数据库添加一些数据。它的工作原理。而且,我成功地检索了这些数据。但现在我需要将当前日期作为新数据值添加到这些数据中,然后使用其他数据检索该数据。我知道,我必须用新的数据类型更新我的数据类,但问题是我如何生成当前数据以及如何将其保存在数据库中(数据类型)。我附上了我的数据添加代码,检索代码下面。

数据添加代码:

val notificstionRef = rootRef.child("Notifications")
val eventListener1: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val recharge = amountText.getText().toString()
val title = "Recharge Amount"
val notifications = Notifications(sessionId,title,recharge)
ref1.child(sessionId).setValue(notifications).addOnSuccessListener {
} .addOnFailureListener{
}
}
override fun onCancelled(databaseError: DatabaseError) {
}
}
notificstionRef.addListenerForSingleValueEvent(eventListener1)

数据检索代码

val rootRef = FirebaseDatabase.getInstance().reference
val userRef = rootRef.child("Notifications").child(sessionId)
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val title = dataSnapshot.child("title").getValue(String::class.java)
val body = dataSnapshot.child("body").getValue(String::class.java)
title1Notification.setText(title)
body1Notification.setText(body)
}
override fun onCancelled(error: DatabaseError) {
Log.d("TAG", error.getMessage())
}
}
userRef.addListenerForSingleValueEvent(valueEventListener)

数据类

data class Notifications(val emailA: String, val title: String, val body: String)
你能帮我解决这个问题吗?我是这个领域的新手(学生)

编辑

dependencies {
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'com.android.support:support-annotations:28.0.0'
implementation 'androidx.annotation:annotation:1.2.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'com.google.android.gms:play-services-maps:17.0.1'
implementation ('com.google.zxing:core:3.3.3')
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'com.google.firebase:firebase-database-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation platform('com.google.firebase:firebase-bom:28.4.1')
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
}

错误截图

如果您想在类型为Notifications的对象中添加Timestamp类型字段,那么请在您的类中定义以下字段:

data class Notifications(
val emailA: String? = null,
val title: String? = null,
val body: String? = null,
val timestamp: Map<String, String>? = null
)

可以看到,新字段的类型是Map<String,>。还要记住,当您设置TIMESTAMP时,您将其设置为Map,但是当您检索它时,您将其检索为Long。现在,当你创建一个对象,通过第四个参数ServerValue.TIMESTAMP)

或者,您可以创建一个Map并使用:

map.put("timestamp", ServerValue.TIMESTAMP);

相关内容

  • 没有找到相关文章