我的MainActivity有一个TabView,由4个片段填充,每个Fragment使用Firestore DocumentReference来获取数据,这会导致我的应用程序再次为每个TAB下载数据。我想在我的MainActivity中获取DocumentReference中的数据,并在我的4个片段和甚至不同的Activity之间共享DocumentReference。 这可能吗? 我的Firestore DocumentReference包含对象,因此我不确定它是否适用于共享首选项。
答案 0 :(得分:1)
使用Android Firestore SDK,默认情况下会启用offline persistence。这意味着当提取文档时,它将保留在设备上的本地缓存中,并且不会再次下载以供后续访问(除非文档在服务器上已更改,或者它已从缓存中逐出,因为缓存也增长了大)。
对于您的情况,我怀疑您实际上是多次提取文档,除非您禁用了持久性。
答案 1 :(得分:0)
您可以为Firestore Operations创建单独的类。
public class FirebaseUtils {
public static DocumentReference getFirestoreUserDocRef(String documentName) {
return FirebaseFirestore.getInstance().collection("users").document(documentName);
}
}
您可以访问项目中的任何位置。
希望它对你有所帮助。