【问题标题】:Not able to pass objects using intent无法使用意图传递对象
【发布时间】:2021-08-05 07:14:42
【问题描述】:

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

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) 中遇到错误。

我的 User 类实现了可序列化

这里有什么问题?

【问题讨论】:

标签: android kotlin serialization google-cloud-firestore


【解决方案1】:

常量是字符串吗?

否则,您可以尝试将您的用户转换为 Serializable 并查看是否失败,如果没有,它应该可以工作。

所以

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

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

【讨论】:

  • 我的错误是用户应该可以为空。但我不知道如何使用户对象为空。 Constants.USER_OBJECT 是一个字符串
猜你喜欢
  • 1970-01-01
  • 2011-01-21
  • 2015-04-16
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多