【发布时间】:2019-01-04 17:36:06
【问题描述】:
我有一个对象User:
@IgnoreExtraProperties
object User {
val firstName: String = ""
val lastName: String = ""
val employeeId: String = ""
val city: String = ""
val email: String = ""
var salaries = mutableListOf<Salary>()
}
薪水是这样的:
@IgnoreExtraProperties
object Salary {
var employeeId: String? = ""
var value: Int? = 0
var startDate:Date = Date()
}
从 Firestore 检索用户数据时,我使用此代码从 Firestore 解析 DocumentSnapshot:
documentSnapshot.toObject(User::class.java)
除了“薪水清单”之外,一切都像它应该的那样工作。列表的大小是正确的(在我的情况下是 3),但它是相同的元素 3 次而不是 3 个不同的元素 - 关于如何解决这个问题的任何想法......? :S
确切代码:
fun getUser(): Observable<Boolean> {
return Observable.create<Boolean> {
FirebaseFirestore.getInstance().collection("users").document(FirebaseAuth.getInstance().currentUser!!.uid).addSnapshotListener(object : EventListener<DocumentSnapshot> {
override fun onEvent(p0: DocumentSnapshot?, p1: FirebaseFirestoreException?) {
if (p0!!.exists()) {
p0.toObject(User::class.java)
it.onNext(true)
} else {
}
}
}
)
}
}
数据库结构:
【问题讨论】:
-
能否请您添加您用于获取数据的整个代码?还请在托管这 3 个元素的位置添加您的数据库结构。
-
@AlexMamo 当然 - 等一下
-
是的,为了看得更清楚。
-
@AlexMamo 我将其添加到问题中
标签: android firebase kotlin google-cloud-firestore