Flutter 和 Firebase。数据更改时重建小部件。错误的代码或错误的数据库? [关闭]

Posted

技术标签:

【中文标题】Flutter 和 Firebase。数据更改时重建小部件。错误的代码或错误的数据库? [关闭]【英文标题】:Flutter and Firebase. Widget rebuild on data change. Wrong code or wrong database? [closed] 【发布时间】:2020-04-01 20:00:31 【问题描述】:

我在 Firebase 上有一个带有一系列帖子的 nosql 数据库。 每个帖子都有一个 cmets 集合。

当用户添加新评论时,所有小部件都会重新加载(在帖子列表屏幕上),我只想看到评论添加到评论列表中,而不是重新加载所有屏幕...

这是因为我做错了代码或错误的数据库?

我需要将 cmets 存储在单独的帖子集合中,如关系数据库?

PS:我是 Flutter、Firebase 和 nosql 数据库的新手

【问题讨论】:

请向我们展示您当前的工作代码,这将有助于我们为您提供帮助。您可能不恰当地改变了build() 中使用的数据。如果可能,请尝试使用流生成器。 【参考方案1】:

您可以利用一个称为延迟加载的概念。如果您使用列表视图来保存所有帖子,您可以轻松地做到这一点,以便在用户滚动时加载更多帖子并避免一次加载所有帖子。

延迟加载概念:Flutter ListView lazy loading

您也可以手动切断它加载的帖子数量。如果用户想查看更多内容,请在底部有一个按钮以加载更多帖子。

忠告:构建方法应该很便宜,因为它们可以在任何时候以任何理由被调用。避免在构建方法中包含逻辑并将其放在另一个类中,或者至少将逻辑分离到不同的函数中。

【讨论】:

以上是关于Flutter 和 Firebase。数据更改时重建小部件。错误的代码或错误的数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:数据更改时的 Firebase 推送通知

Flutter - 使用提供程序包侦听 Firebase 用户的用户配置文件(Firestore)中的数据更改

Flutter:Firebase 如何更改查询和内容

成功身份验证后,Flutter Firebase 数据库权限被拒绝

Firebase 更新时 Flutter 的错误行为

带有 Firebase 和 FirebaseUI 的 Nuxt 中间件:错误:通过导航守卫从“/anything”转到“/login”时重定向