如何将Fire存储引用对象传递给另一个活动(Kotlin)



我的MainActivity中有一个Firestore引用,如下所示:

val ref = baseRef.collection("intermediate").document("choicesdocument").collection("choices")

现在我想通过intent将这个ref引用变量传递给另一个活动,比如SecondActivity,那么我该怎么做呢?

此外,我如何检索第二个活动中的数据?

在多个活动中创建相同的引用没有错。当您与Firestore交互时,将打开应用程序与Firebase服务器之间的单个连接。从那时起,应用程序和数据库之间的所有流量都通过该连接。因此,创建Firestore实例的次数并不重要,它始终是一个连接。

正如@a_local_nobody在他的评论中已经提到的,没有必要传递对第二个活动的引用,因为它可以简单地在那里创建。除此之外,ref对象的类型是CollectionReference,这是一个扩展Query的类。不幸的是,这些类都没有实现Serializable接口。这意味着您不能将这样的对象添加到Intent中,然后使用getSerializableExtra((在第二个活动中将其取回。

如果你想使用现代解决方案,那么你可以使用Hilt for Android。因此,您只能创建一次这样的对象,然后可以将该实例注入到所需的活动/片段中。

最新更新