我有一个使用Firestore的静态实用程序类。数据库操作偶尔由后台服务调用。我希望这项服务能在用户的手机上运行数月。
我一直在静态变量中初始化 Firestore 的实例,并始终使用它。以这种方式保持实例活动状态有什么不好的影响吗?
每次需要时调用getInstance更好吗?似乎Firestore缓存了getInstance的结果。
class FSWrapper {
private static FirebaseFirestore fs = FirebaseFirestore.getInstance();
public static operation1() {
// do some reads
}
public static operation2() {
// do some writes
}
}
class BackgroundService extends Service {
public void onSomeEvent() {
FSWrapper.operation1();
FSWrapper.operation2();
.....
}
}
FirebaseFirestore.getInstance()
返回一个单例对象,每次都返回相同的对象。 它永远不会被垃圾收集,所以你可以随心所欲地保存它,没有缺点(除了无法正确使用它进行单元测试 - 你会想注入单例其他方式来做到这一点(。