使用 Firebase 的 Firestore 时,如何验证列表中的项目或地图?

wad*_*app 0 firebase google-cloud-firestore

我找不到验证firestore 中列表内容的解决方案。有没有办法解决这个问题?

我不想使用新集合,因为它对如此少量的数据没有意义(并且最终会花费比必要更多的读取成本,并且将数据保存在原始文档下更方便) .

为每个文档存储一些图像细节:

[
  {
    "filename": "example.png",
    "author": "example",
    "caption": "...",
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

或者,为每个文档存储几个标签:

[
  "tag text 1",
  "tag text 2",
  ...
]
Run Code Online (Sandbox Code Playgroud)

我如何访问每个项目(或循环?)来验证它们,以便在第一个带有图像的示例中,它可以被验证(例如):

  • 每一项都是一张地图,
  • 文件名是一个字符串,
  • 作者是一个字符串,
  • 标题是特定长度的字符串

或者,对于标签示例,

  • 每个项目都是特定长度的字符串?

或者是否有更好的解决方案来将此类数据存储在文档中而无需创建新集合或子集合?

Fra*_*len 5

我如何访问每个项目(或循环通过?)以验证它们。

如果您问的是在服务器端安全规则中执行此操作,那么您就一针见血:无法在 Firebase 的服务器端安全规则中循环。有关可以文档中的 a执行的操作,List请参阅参考文档。这限制了可以在安全规则中实现的功能,据我所知,您提到的任何用例都不能仅通过安全规则来实现。

我能想到的最简单的方法是使用 Cloud Functions 来实现逻辑。你可以具有云功能检查的文件,以取代现时收集,或者可以让客户端写入不同的集合(的“待定”的文件),具有云功能验证文档,并将其移动到实际收藏。