如何在不花钱的情况下检查 firestore 中是否存在给定 id 的文档?

2024-03-11

我有一个场景,我有用户的电话号码,我想检查用户是否已经在我的应用程序上注册。为此,我在 firestore 中有一个集合。在这个集合中,我将个人用户的联系电话号码作为文档。每当用户打开应用程序并输入他的手机号码时,应用程序就会发送使用以下命令搜索特定文档的请求:

final snapShot = await Firestore.instance.collection('rCust').document(_phoneNumberController.text).get();

我的数据库结构如下 https://i.stack.imgur.com/oFNtP.png

因此,我的 Firestore 账单增长得非常快。仅通过 4-5 次查询,我的读取次数就从 75 次飙升至 293 次。如果有人能指导我如何有效地做到这一点,那就太好了。


如果你想知道某个文档是否确实存在于服务器上,那么你总是需要花费一次文档读取的时间。目前没有办法避免这种成本。访问大规模可扩展索引的成本使您能够在潜在的数十亿个文档中找到 1 个文档。

您可以先尝试查询本地缓存,这不需要任何费用。你可以通过传递一个来做到这一点源.cache https://pub.dev/documentation/cloud_firestore_platform_interface/latest/cloud_firestore_platform_interface/Source-class.html论证get() https://pub.dev/documentation/cloud_firestore/latest/cloud_firestore/DocumentReference/get.html。如果您想假设存在于本地缓存中始终意味着该文档存在于服务器上,那么这将为您节省一个文档读取时间。但是,如果服务器上的文档被删除,本地缓存查询就会不正确。您仍然需要查询服务器才能确定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不花钱的情况下检查 firestore 中是否存在给定 id 的文档? 的相关文章

随机推荐