firebase - 如何在应用程序离线时绕过 Firebase 身份验证?

标签 firebase flutter google-cloud-firestore firebase-authentication

我有以下场景:Flutter 应用程序由 AWS 上的 Spring Boot 应用程序支持。用户第一次尝试登录时,他们将通过 Spring Security 使用 OAuth2 进行身份验证,并获得一个 JWT token ,该 token 保存在应用程序的内存中以供将来交互。

除了第一个 token 之外,还有一个辅助 Firebase token ,使用 Firebase 私钥签名,用于与 Firestore 数据库的所有交互。

Firebase 连接得到了很好的处理,包括在失去互联网连接期间,但每当用户尝试(首先或重新)打开应用程序并且互联网连接不可用时,它会在 Firebase 登录期间挂起。

有什么办法可以绕过这个吗? 我知道他们无法在没有互联网连接的情况下进行身份验证,但我希望允许用户在离线时访问他们的 Firestore 本地缓存。

最佳答案

您可以启用离线持久化,在网络中它默认是禁用的:

firebase.firestore().enablePersistence()
  .catch(function(err) {
      if (err.code == 'failed-precondition') {
          // Multiple tabs open, persistence can only be enabled
          // in one tab at a a time.
          // ...
      } else if (err.code == 'unimplemented') {
          // The current browser does not support all of the
          // features required to enable persistence
          // ...
      }
  });

您可以了解更多here

关于firebase - 如何在应用程序离线时绕过 Firebase 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64445049/

相关文章:

flutter - 如何在 ListView.separated 中的几个列表项之间放置分隔线

dart - Flutter 小部件状态构造函数未运行

firebase - Flutter,FieldValue.removeArray()无法正常工作

firebase - 带有 <= & >= 的 Firestore 复合查询

swift - Firebase 中的唯一用户名

javascript - 如何获取使用 Firebase Google 登录的登录用户的属性?

java - 何时使用 firebase 函数以及何时使用 firestore 客户端函数?

firebase - 如何将特定的 ListTile 变量传递给新的页面路由 onTap?

flutter - 错误 : downloads_path_provider in flutter

javascript - 如何检查对象是否是 firebase.firestore.FieldValue 的实例