无法使用意图传递对象

Not able to pass objects using intent

我正在尝试从 firebase firestore 数据库下载一个对象并将其发送到另一个 activity。这是我的代码:

FirebaseFirestore.getInstance().collection(Constants.COLLECTION)
                        .document(getCurrentUid()!!)
                        .get()
                        .addOnSuccessListener {
                            snapshot ->
                            val user: User? = snapshot.toObject(User::class.java)
                            val intent = Intent(this, MainActivity::class.java)
                            intent.putExtra(Constants.USER_OBJECT, user)

                        }

但问题是我在 intent.putExtra(Constants.USER_OBJECT, user).

中遇到错误

我的用户class实现可序列化

这里有什么问题?

常量是字符串吗?

否则,您可以尝试将您的用户转换为可序列化,看看是否失败,如果失败,它应该可以工作。

所以

   val user: User? = snapshot.toObject(User::class.java)
   val intent = Intent(this, MainActivity::class.java)
   intent.putExtra(Constants.USER_OBJECT, user as Serializable)

确保用户在传递时也不为空。也许 putExtra 已更新为仅允许非空值,而您的用户可能为空。