在多个片段中访问相同的 Firebase Firestore
Accessing same Firebase Firestore in multiple fragments
我有一个 ArrayList<Person>
存储在 Firestore
。
我在 片段 A 中有一个 RecyclerView
显示每个人的基本信息。
我有一个 onClickListener
将 片段 A 替换为 片段 B 并传递了项目上人员的 UID还单击了 片段 B。
我的 Fragment B 的目标是通过某种方式使用 UID 来显示单击的 Person 项目的所有详细信息(以及添加更多数据的选项)来自 Firestore
.
的数据
我的问题是,我是否应该为我需要相同 Firestore
的每个 Fragment
实例化一个 Firebase Firestore
?或者我可以将 Person 对象作为一个包传递出去(尽管我不确定我所做的任何更改是否反映在 Firebase 上)。
我认为这是一个非常昂贵的过程,我不确定我的替代方案是什么。
- FirebaseFirestore 是一个 Singleton class 这意味着任何你调用它的地方:
FirebaseFirestore db = FirebaseFirestore.getInstance();
您将始终获得相同的对象。
如果 Person class 实现了 Parcelable. If it implements Parcelable you can add the person object to a bundle and send it to the other fragment this way.
,您可以将数据传递给第二个片段
如果“实例化 Firestore”实际上是指从 Firestore 检索数据,Firestore 在本地 caches 您的应用正在使用的数据副本,因此片段 B 将检索数据来自本地缓存。
我有一个 ArrayList<Person>
存储在 Firestore
。
我在 片段 A 中有一个 RecyclerView
显示每个人的基本信息。
我有一个 onClickListener
将 片段 A 替换为 片段 B 并传递了项目上人员的 UID还单击了 片段 B。
我的 Fragment B 的目标是通过某种方式使用 UID 来显示单击的 Person 项目的所有详细信息(以及添加更多数据的选项)来自 Firestore
.
我的问题是,我是否应该为我需要相同 Firestore
的每个 Fragment
实例化一个 Firebase Firestore
?或者我可以将 Person 对象作为一个包传递出去(尽管我不确定我所做的任何更改是否反映在 Firebase 上)。
我认为这是一个非常昂贵的过程,我不确定我的替代方案是什么。
- FirebaseFirestore 是一个 Singleton class 这意味着任何你调用它的地方:
FirebaseFirestore db = FirebaseFirestore.getInstance();
您将始终获得相同的对象。
如果 Person class 实现了 Parcelable. If it implements Parcelable you can add the person object to a bundle and send it to the other fragment this way.
,您可以将数据传递给第二个片段如果“实例化 Firestore”实际上是指从 Firestore 检索数据,Firestore 在本地 caches 您的应用正在使用的数据副本,因此片段 B 将检索数据来自本地缓存。