包裹:无法编组值 com.google.firebase.firestore.DocumentReference

Parcel: unable to marshal value com.google.firebase.firestore.DocumentReference

我在 Cloud Firestore 中存储了一个引用列表。当我得到数据时,它给了我这个错误:

"java.lang.RuntimeException: Parcel: unable to marshal value com.google.firebase.firestore.DocumentReference@44bef898"

我在互联网上搜索过,但没有找到任何解决方案。提前谢谢你

User.kt

import android.os.Parcelable
import com.google.firebase.firestore.DocumentReference
import kotlinx.android.parcel.Parcelize
import kotlinx.android.parcel.RawValue

@Parcelize
data class User(
    val bio: String? = null,
    val email: String? = null,
    val followers: @RawValue List<DocumentReference>? = null,
    val following: @RawValue List<DocumentReference>? = null,
    val picture: String? = null,
    val uid: String? = null,
    val username: String? = null
) : Parcelable

您收到以下错误:

"java.lang.RuntimeException: Parcel: unable to marshal value com.google.firebase.firestore.DocumentReference

因为您的 User class 实现了 Parcelable,并且它里面的所有字段也应该实现 Parcelable,而实际上并没有,因为属性 followersfollowing ,属于 List<DocumentReference>DocumentReference 类型 not 实现 Parcelable,也不是 Serializable。要解决这个问题,您应该从以下 post:

中查看我的答案

并使用存在于每个 DocumentReference 对象中的字符串路径。