当您关闭应用程序时,为什么Firestore同步不起作用?

时间:2019-11-03 17:12:46

标签: flutter google-cloud-firestore

每次输入银行信息时,都需要检查名称是否正确,因为我希望此功能可以脱机工作,所以我不能在银行中出现不一致之处。到目前为止,下面的代码按我想要的方式工作。但是只有在一种情况下,同步才会失败,即当我按下应用的后退按钮直到其关闭时。因此,当我打开互联网时,数据不会同步。

  Firestore.instance
      .collection('Regiao')
      .where('idRegiao', isEqualTo: idRegiao)
      .snapshots()
      .listen((data){
        data.documents.forEach((doc) {

          Firestore.instance
            .collection('CadernoCampoDefensivo')
            .document(idCadernoCampo)
            .updateData({'regiao' : doc['nomeRegiao']})
            .then((_){});


        });
  });

1 个答案:

答案 0 :(得分:0)

应用中的代码仅在用户积极使用您的应用时运行。这样可以正常工作,否则,任何应用程序在不活动时都可以按照自己的意愿进行操作,并且会消耗电池寿命。

如果此代码需要在单个位置运行,以响应其他用户更新数据,则通常在手机内部不是这样做的最佳位置。而是考虑在您控制的服务器上或Cloud Functions for Firebase中运行它。这些解决了连接性(比电话更可能连接到网络)和电池寿命(因为它们已连接到电源)的问题。