在长时间运行的服务中获取和存储 Firestore 实例



我有一个使用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()返回一个单例对象,每次都返回相同的对象。 它永远不会被垃圾收集,所以你可以随心所欲地保存它,没有缺点(除了无法正确使用它进行单元测试 - 你会想注入单例其他方式来做到这一点(。

最新更新