如何将 Fire store ref 对象传递给另一个活动(Kotlin)?
Posted
技术标签:
【中文标题】如何将 Fire store ref 对象传递给另一个活动(Kotlin)?【英文标题】:How to pass Fire store ref object to another activity(Kotlin)? 【发布时间】:2022-01-05 13:07:57 【问题描述】:我的 MainActivity 中有一个 Firestore 引用,如下所示:
val ref = baseRef.collection("intermediate").document("choicesdocument").collection("choices")
现在我想将这个 ref 引用变量传递给另一个活动,比如 SecondActivity via intent,那么我该怎么做呢?
另外,我如何检索第二个活动中的数据?
【问题讨论】:
你为什么要这样做?为什么不在其他活动中重新创建对象? 如果我这样做了,那么我也必须创建多个引用,因为我正在进行许多不同的数据库调用,在这个问题中,我将我的问题分解为只有一个数据库调用 所以不要使用新的活动,使用带有片段的活动 兄弟你能不能只回答这个问题,另外如果你有时间我可以和你讨论我的项目问题,那么你可以在这里了解我的情况,可能你给出一些其他的解决方案 【参考方案1】:在多个活动中创建相同的引用并没有错。当您与 Firestore 交互时,会打开您的应用程序和 Firebase 服务器之间的单个连接。从那一刻起,应用程序和数据库之间的所有流量都通过该连接。因此,无论您创建 Firestore 实例多少次,它始终是一个连接。
正如@a_local_nobody 在他的评论中已经提到的,不需要传递对第二个活动的引用,因为它可以在那里简单地创建。除此之外,您的ref
对象属于CollectionReference 类型,这是一个扩展Query 的类。不幸的是,这些类都没有实现Serializable 接口。这意味着您无法将此类对象添加到 Intent 并使用 getSerializableExtra() 在第二个活动中将其取回。
如果您想使用现代解决方案,则可以使用Hilt for android。因此,您只能创建一次这样的对象,然后您可以将该实例注入您想要的活动/片段中。
【讨论】:
嘿阿曼。我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我真的很感激。谢谢!以上是关于如何将 Fire store ref 对象传递给另一个活动(Kotlin)?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 thunk 或回调函数传递给 redux 操作。在 redux store 中为模态和 toast 确认通知序列化函数