Firebase Firestore读/写与云函数读/写

Firebase Firestore读/写与云函数读/写,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,我正在使用Firestore,我有以下问题,关于用户行为如何影响应用程序成本: 更具成本效益的是: 在用户键入web表单时使用保存在数据库中的实时表单 使用firebase函数一次保存表单中的所有字段 问题: 使用云函数代理是否过火了?(只是为了避免成本) 当用户键入(实时更新)时,是否每次都将其视为对数据库的新写入 更具成本效益的是: 在用户键入web表单时使用保存在数据库中的实时表单 这将花费您每次实时保存表单时的一次写入操作 使用firebase函数一次保存表单中的所有字段

我正在使用Firestore,我有以下问题,关于用户行为如何影响应用程序成本:

更具成本效益的是:

  • 在用户键入web表单时使用保存在数据库中的实时表单

  • 使用firebase函数一次保存表单中的所有字段

问题:

  • 使用云函数代理是否过火了?(只是为了避免成本)
  • 当用户键入(实时更新)时,是否每次都将其视为对数据库的新写入
更具成本效益的是:

  • 在用户键入web表单时使用保存在数据库中的实时表单
这将花费您每次实时保存表单时的一次写入操作

  • 使用firebase函数一次保存表单中的所有字段
这将花费你一次写作

这两者之间的成本差异应该是显而易见的——多次写入与单次写入

问题:

使用云函数代理是否过火了?(只是为了避免成本)

如果你只是为了节省成本而代理,那就太过分了。函数调用将花费您的钱,除了文档编写,这将花费相同的费用,无论它来自何处

  • 当用户键入(实时更新)时,是否每次都将其视为对数据库的新写入
正如我之前所说的,是的

通过函数发送表单提交的唯一真正原因是能够对表单字段的有效性进行深入、安全的检查。客户端检查不安全。您可以使用安全规则执行检查,但这些规则是有限的。如果需要确保表单字段具有严格检查的值,那么云函数可能是最佳选择。但根据你问题中的信息是不可能说出的

更具成本效益的是:

  • 在用户键入web表单时使用保存在数据库中的实时表单
这将花费您每次实时保存表单时的一次写入操作

  • 使用firebase函数一次保存表单中的所有字段
这将花费你一次写作

这两者之间的成本差异应该是显而易见的——多次写入与单次写入

问题:

使用云函数代理是否过火了?(只是为了避免成本)

如果你只是为了节省成本而代理,那就太过分了。函数调用将花费您的钱,除了文档编写,这将花费相同的费用,无论它来自何处

  • 当用户键入(实时更新)时,是否每次都将其视为对数据库的新写入
正如我之前所说的,是的


通过函数发送表单提交的唯一真正原因是能够对表单字段的有效性进行深入、安全的检查。客户端检查不安全。您可以使用安全规则执行检查,但这些规则是有限的。如果需要确保表单字段具有严格检查的值,那么云函数可能是最佳选择。但是,如果给出了问题中的信息,就不可能说出答案。

没有特别的理由需要使用函数同时保存所有内容——无论在什么时候调用函数,都可以调用对数据库的单个更新。在这里使用函数的成本将严格来说更高(假设它除了数据库写入之外不提供任何功能),因为您将承担写入成本和函数执行成本

当然,您可能还有其他一些原因来调用云函数来完成简单代理之外的写操作——比如确保安全规则无法单独实施的约束。在这种情况下,增加功能的成本可能是值得的


至于批处理或实时写入是否更好,一次性写入肯定会更便宜,就像Firestore一样。更具体地说,每个
集合
更新
都作为一次写入收费。因此,与用户输入数据时实时(或按字段)编写文档相比,只为多个字段编写一次文档的成本肯定会更低。

没有特别的理由需要使用函数同时保存所有内容--无论在什么时候调用函数,而是调用对数据库的单个更新。在这里使用函数的成本将严格来说更高(假设它除了数据库写入之外不提供任何功能),因为您将承担写入成本和函数执行成本

当然,您可能还有其他一些原因来调用云函数来完成简单代理之外的写操作——比如确保安全规则无法单独实施的约束。在这种情况下,增加功能的成本可能是值得的

至于批处理或实时写入是否更好,一次性写入肯定会更便宜,就像Firestore一样。更具体地说,每个
集合
更新
都作为一次写入收费。因此,与用户输入数据时实时(或按字段)写入文档相比,只为多个字段编写一次文档的成本肯定会更低