首页 > 解决方案 > Firestore - 在请求但未找到文档或读取过期文档时触发?

问题描述

我有一个应用程序,其中向用户显示的所有数据都是从 firestore 文档接收的。这些文档包含用户生成的内容或从 3rd 方 API 导入的数据。导入的文档包含过期时间戳。应用程序中的每个屏幕都映射到一个或多个 Firestore 文档路径。

如果应用程序请求并订阅特定路径的文档,但未找到该文档,或者它已过期,我想要一个云功能从外部 API(重新)导入文档,所以我可以确定更新的数据将很快出现在应用程序中。

但是,我找不到文档读取或未找到操作的触发器,这将是显而易见的选择。

如果无法触发读取功能,这里有哪些替代解决方案?

我正在使用 react/redux/firestoreConnect 来获取数据。

标签: google-cloud-firestoregoogle-cloud-functionsdocument-database

解决方案


我了解您以某种方式从您的应用程序中查询 Firestore 数据库以查找一个或多个文档,以防万一

  1. 文档不存在,或者
  2. 文档存在,但已达到过期日期(存储在文档中)

您想触发一个“从外部 API (重新)导入文档”的云函数。

一种方法是当您对 Firestore 文档的查询未返回任何文档或返回具有过期日期的文档时,从您的应用程序触发Callable Cloud Function 。

然后在 Cloud Function 中,您执行 API 调用,更新文档并向应用返回“成功”标志,以指示它可以重新获取 Firestore 文档,因为该文档已被(重新)导入。

换句话说,您从应用程序触发(重新)导入,而不是基于 Cloud Function 后台触发器。

我希望这会有所帮助,如果需要,请随时询问更多详细信息/方向!


推荐阅读