某些设备上的 Cloud Firestore 连接速度很慢

Posted

技术标签:

【中文标题】某些设备上的 Cloud Firestore 连接速度很慢【英文标题】:Cloud Firestore connection is slow on some devices 【发布时间】:2021-06-04 00:11:13 【问题描述】:

任何想法为什么 Cloud Firestore 连接对我的客户来说很慢但对我来说几乎是即时的?选择的 Firebase 服务器是 europe-west3,我的客户在英国,我在罗马尼亚。

根据 speedtest.net 的数据,他的下载速度相对较好,但从 Cloud Firestore 下载数据非常慢。即使是 6 个文档,总共 8 个小字段,加载速度也非常慢。

【问题讨论】:

请出示您的代码 @VadimPopov 这是获取我提到的那 6 个文档的代码:collection.orderBy("dateAdded", descending: true).snapshots();从集合中获取所有数据的侦听器; 尝试更新google和firebase相关包 @PavelShastov 会尽快尝试。 【参考方案1】:

您是否查看过 Firebase 博客帖子"Why is my Cloud Firestore query slow?"

我认为你应该在你的数据上使用实现 Indexing。

Firebase 为 ordering 和 querying 您的数据提供了强大的工具。具体来说,Firebase 允许您使用任何公共子键对节点集合进行临时查询。

节点的键是自动索引的,所以不需要索引 明确的。

【讨论】:

我认为 Firebase 已经负责按所有字段索引所有文档,因此它在复合索引方面施加了限制 您链接的文档是指实时数据库,一个完全不同的产品 感谢您的回答,但这不是我需要的。 1.您主要指向实时数据库,这与ppicom提到的不同。 2. 我看过“为什么我的 Cloud Firestore 查询很慢”,但大小数据的问题都是一样的。例如,从数据库中获取用户信息需要很长时间,该数据库是一个包含:姓名、电子邮件、电话号码、uid 和类别 id 的文档。【参考方案2】:

不确定可能是什么原因,但我认为在查询和记录错误之前确保它正在初始化 firebase 是个好主意。

void main() 
  WidgetsFlutterBinding.ensureInitialized();
  runApp(App());

操作前初始化:

await Firebase.initializeApp();

把上面的代码和操作放在try、catch、log上看看慢的时候会发生什么,可能是初始化的时间不对或者没有初始化,需要额外的时间来操作。

【讨论】:

【参考方案3】:

以下一个或多个主题可能是原因:

原因 #1:这是数据,傻! 原因 #2:您的离线缓存太大 原因 #3:您的 zig-zag 合并连接在应该 zag 时是 ziging 原因 #4:您已经习惯了实时数据库 原因 #5:物理定律让你失望

我从 medium.com 文章中获得了这些项目,并留下了下面的链接。 希望对您有所帮助:

firebase-developers/why-is-my-cloud-firestore-query-slow-e081fb8e55dd

【讨论】:

以上是关于某些设备上的 Cloud Firestore 连接速度很慢的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firestore [cloud_firestore/not-found] 找不到某些请求的文档

Cloud Firestore 连接我的 Flutter Windows 应用

Flutter:[cloud_firestore/unknown] NoSuchMethodError:null 上的无效成员:'includeMetadataChanges'(Flutter Web

无法访问 Cloud Firestore 后端。连接失败 1 次

如何从 Cloud Firestore 上的对象中检索值?迅速

Flutter 未处理的异常:热重载后 cloud_firestore 上的堆栈溢出