Flutter 使用firestore离线处理添加的最佳方法

Flutter 使用firestore离线处理添加的最佳方法,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我创建了一个代码,添加到firestore中,当应用程序在线时,它会按预期工作,但当我关闭互联网时,wait功能挂起,但数据以现金更新,但小部件在未来的功能响应之前不会更新。怎么办 Firestore.instance.settings( persistenceEnabled: true, ); firestore = Firestore.instance; Future<void> update(String itemId, Map<String,dynamic>

我创建了一个代码,添加到firestore中,当应用程序在线时,它会按预期工作,但当我关闭互联网时,
wait
功能挂起,但数据以现金更新,但小部件在未来的功能响应之前不会更新。怎么办

Firestore.instance.settings(
  persistenceEnabled: true,
);
firestore = Firestore.instance;

Future<void> update(String itemId, Map<String,dynamic> data) async {
  return await shoppingItemsRef.document(itemId).updateData(data);
}
Firestore.instance.settings(
persistenceEnabled:true,
);
firestore=firestore.instance;
未来更新(字符串itemId,映射数据)异步{
返回等待购物项目ref.document(itemId).updateData(data);
}

如果用户在脱机模式下抛出此未来函数返回响应或以任何方式抛出此函数,该如何处理。

对于Firestore SDK,只有在服务器上提交写入操作后,写入操作才能完全完成。我希望在对
updateData
的调用完全完成之前,未来不会解决。这意味着
wait
将被“卡住”,直到应用程序再次联机


但是,在调用
updateData
之后,在服务器上完全完成写入之前,您仍然应该立即看到后续查询和侦听器的更改。

是的,这正是代码行为所做的,但我想知道如何避免这种情况!不要等待更新!如果您不希望代码路径在脱机时被卡住,请不要调用wait。