【问题标题】:best way to handle add with firestore offline使用firestore离线处理添加的最佳方法
【发布时间】:2020-02-09 16:26:33
【问题描述】:

我创建了一个添加到 firestore 的代码,它在应用程序在线时按预期工作,但是当我关闭互联网时,await 函数挂起,但数据以现金更新,但小部件直到未来的函数响应才会更新做吗?

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);
}

如果用户处于离线模式,如何抛出这个未来函数返回响应或以任何方式。

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

    使用 Firestore SDK,在服务器上提交写入操作之前,写入操作不会完全完成。我希望在对 updateData 的调用完全完成之前,Future 不会解决。这意味着await 将被“卡住”,直到应用再次上线。

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

    【讨论】:

    • 是的,这正是代码行为所做的,但我想知道如何避免这种情况!不要等待更新!
    • 如果您不希望代码路径在离线时卡住,请不要调用 await。
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多