【问题标题】:when to use firebase functions and when to use firestore client functions?何时使用 firebase 功能以及何时使用 firestore 客户端功能?
【发布时间】:2019-12-09 13:49:00
【问题描述】:

我有一个项目,我需要将数据和图像一起写入,即同时写入Cloud StorageFirestore Database云存储和云都没有批量写入Firestore 结合,所以唯一的解决办法就是一个接一个地做,即把一个东西写到数据库,当它成功时再写下一个。

问题是当写入第一个数据成功而第二个数据失败时,我必须恢复事务,我认为从客户端这样做不好,可能会有互联网连接中断

所以我的问题是我是否应该将 Cloud Functions 用于写入数据库的所有内容?

【问题讨论】:

    标签: java firebase kotlin google-cloud-firestore google-cloud-functions


    【解决方案1】:

    Cloud Functions 本质上是使用 Admin SDK 访问 Firebase 的小型节点脚本。除了 API 之外,它们没有特殊的权力,这意味着它们与在其他地方使用该 API 具有相同的限制。

    使用云函数将减少相关操作之间发生中断的机会,但它不会消除这种机会。

    这意味着您必须以某种方式处理干扰。通常这是一个两步过程:

    1. 确保读取数据的所有代码都对不完整的数据具有鲁棒性。例如,从数据库中读取(下载)URL 后,不要假设它指向的文件存在。它可能不存在的原因有很多(事后删除、服务不可用等),所以无论如何这是个好主意。
    2. 定期运行检测不完整数据并将其清理的脚本。例如,每天运行一个 Cloud Function,获取 Cloud Storage 中所有文件的列表,如果数据库中没有对它们的引用,则将其删除,然后从数据库中读取所有 URL,并检查它们是否仍然存在.

    我承认第二步通常是我稍后添加的。第一步已经确保应用程序运行正常,因此清理只是在那时的一些数据存储优化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 2019-11-06
      • 2018-11-30
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      相关资源
      最近更新 更多