[英]How to show a multiple fields of documents in Firestore in one row of LazyColumn
我是 Firestore 的新手。 我需要在像这样的LazyColumn的一行中显示 Firestore 中文档的两个字段值“类别”和“标题” 3 。 我尝试了一些如下代码,但它们显示如下2 。 可能吗?
我的 MainActivity 代码
var t = mutableListOf<String>()
db.collection("posts")
.get()
.addOnSuccessListener { result ->
for (document in result) {
val category = document.data["category"].toString()
val title = document.data["title"].toString()
t.add(category)
t.add(title)
Log.d("black", "${document.id} => ${category}")
Log.d("red", "${document.id} => ${title}")
}
}
.addOnFailureListener { exception ->
Log.w("gray", "Error getting documents.", exception)
}
我的查看代码
LazyColumn(
modifier = Modifier.background(Beige),
verticalArrangement = Arrangement.spacedBy(10.dp),
contentPadding = PaddingValues(5.dp)
) {
items(posts) { post ->
Row(
modifier = Modifier
.fillMaxWidth()
.selectable(
selected = true,
onClick = { navController.navigate("PostContent") }
)
.background(Color.White, RoundedCornerShape(5.dp))
) {
Text(
text = "$post/category\n$post/title",
color = Brown,
modifier = Modifier
.padding(40.dp)
)
}
谢谢你。
你有一个糟糕的存储机制实现。
在调用数据库的 class 中,添加这行代码
data class Post(category: String, title: String)
然后,像这样更新t
变量
var t = mutableStateListOf<Post>()
然后,更新存储机制
db.collection("posts")
.get()
.addOnSuccessListener { result ->
for (document in result) {
val category = document.data["category"].toString()
val title = document.data["title"].toString()
t.add(Post(category, title))
Log.d("black", "${document.id} => ${category}")
Log.d("red", "${document.id} => ${title}")
}
}
.addOnFailureListener { exception ->
Log.w("gray", "Error getting documents.", exception)
}
现在,我假设它与您在LazyColumn
中作为posts
访问的t
变量相同,因此像这样更新该代码
LazyColumn {
items(posts) { post ->
Row(
modifier = Modifier
.fillMaxWidth()
.selectable(
selected = true,
onClick = { navController.navigate("PostContent") }
)
.background(Color.White, RoundedCornerShape(5.dp))
) {
Text(
text = "${post.category}\n${post.title}",
color = Brown,
modifier = Modifier
.padding(40.dp)
)
}
大功告成,随心所欲修改设计,这样逻辑就好了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.