首页 > 解决方案 > 询问Flutter Firebase中是否存在对象,离线时检查缓存

问题描述

我正在开发一个使用 Firebase Cloud Firestore 的 Flutter 应用程序,我需要检查一个项目是否存在于集合中。

var tx = await Firestore.instance.collection(collection).document(txId).get();
return tx.exists;

这个应用程序预计能够离线工作,这是一个常见的场景。在这种情况下,我希望 Firestore 在本地存储中查找,如果不存在则返回 null。但我遇到了麻烦。

我启用了 Firestore 持久性。

 Firestore.instance.settings(persistenceEnabled: true);

但我得到以下异常:

[错误:flutter/lib/ui/ui_dart_state.cc(157)] 未处理的异常:PlatformException(执行获取时出错,由于客户端离线,无法获取文档。,null)

我在 pubspec.yaml 中的 Firebase 依赖项:

  cloud_firestore: ^0.13.7

有没有办法获得所需的行为?(仅在离线时检查本地存储)

我一直在阅读其他问题:

在 Flutter 应用程序中使用 Firestore 中的离线持久性

但这并不是我想要的,因为我不需要在数据库中写入。

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


推荐阅读