无法使用意图传递对象
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 已更新为仅允许非空值,而您的用户可能为空。
我正在尝试从 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 已更新为仅允许非空值,而您的用户可能为空。