包裹:无法编组值 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,而实际上并没有,因为属性 followers
和 following
,属于 List<DocumentReference>
和 DocumentReference 类型 not 实现 Parcelable,也不是 Serializable。要解决这个问题,您应该从以下 post:
中查看我的答案
并使用存在于每个 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,而实际上并没有,因为属性 followers
和 following
,属于 List<DocumentReference>
和 DocumentReference 类型 not 实现 Parcelable,也不是 Serializable。要解决这个问题,您应该从以下 post:
并使用存在于每个 DocumentReference 对象中的字符串路径。