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

标签 firebase flutter google-cloud-firestore

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

搜索特定文档
final snapShot = await Firestore.instance.collection('rCust').document(_phoneNumberController.text).get();

My database structure is as follows

因此,我的 Firestore 账单增长得非常快。仅通过 4-5 个查询,我的读取次数就从 75 次激增到 293 次。如果有人能指导我如何有效地执行此操作,那就太好了。

最佳答案

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

您可以先尝试查询您的本地缓存,这不会花费任何费用。你通过传递 Source.cache 来做到这一点get() 的参数.如果您想假设本地缓存中的存在总是意味着该文档存在于服务器上,那将为您节省一次文档读取。但是,如果在服务器上删除了文档,本地缓存查询就会出错。您仍然需要查询服务器才能确定。

关于firebase - 如何在不花钱的情况下检查 firestore 中是否存在具有给定 id 的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60919858/

相关文章:

xcode - GoogleService-Info.plist : Copy bundle resources or not

ios - 从 firebase 读取数据(ios)

firebase - 如何检查字段是否存在Firestore规则?

dart - 如何使用自定义类对象列表为 Firestore 创建 map<String, Dynamic>?

swift - 线程 9 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, 子代码=0x0) firebase

flutter - Flutter 中的 JWT/RefreshToken 与 ExpiredTokenRetryPolicy/Interceptor

flutter - 如何在 flutter 中对多个小部件使用相同的键?

android-studio - 无法从 Flutter 中的包 URI 错误中提取文件路径,但我没有使用 URI 包

firebase - 如何增加 Cloud Firestore 中的现有数字字段

java - 如何在 firebase 中检查查询过程是否完成