firebase - 使用firebase时真的需要本地状态管理吗?
问题描述
(这最初是一篇关于 Flutter-dev reddit 的帖子,被重定向到这里)
所以我开始使用 firebase 作为后端来制作这个颤振应用程序,在查看了状态管理的所有选项之后,我终于意识到 firebase 提供的工具已经处理了我需要状态管理的几乎所有事情。
例如:
我可以将当前登录的用户设置为我的状态以显示正确的登录名或主页,并使用户 uid 可用于小部件以进行他们的 firestore API 调用。
或者
我可以只听以FirebaseAuth.instance.onAuthStateChanged
显示正确的页面,然后FirebaseAuth.instance.currentUser()
从任何地方使用来获取登录的用户 uid 并进行我的 firestore 调用。
我的意思是,对于需要全局状态的每一件事,我基本上可以拥有一个 firebase 流侦听器。
这是正确的吗 ?还是我在这里遗漏了什么?
解决方案
你没有错过任何东西。由于大多数 Firebase API 依赖于来自 Google 服务器的数据,因此其中许多 API 旨在以被动方式使用。让您的 UI 响应这些异步更改是(根据我的经验)保持代码简单的最佳方法。
不同类型的听众之间可能会有轻微的行为。但是onAuthStateChanged
当您附加它时,侦听器会立即以当前状态触发,这使其成为一个很好的侦听器示例,您可以在需要响应身份验证状态的任何地方使用它(而不是将该状态存储在应用程序的某个位置)。