使用Firebase';时如何验证列表中的项目或映射;消防商店?

使用Firebase';时如何验证列表中的项目或映射;消防商店?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我找不到验证firestore中列表的内容的解决方案。有什么解决办法吗 我不想使用新的集合,因为它对于如此少量的数据没有意义(并且最终将花费比需要多得多的读取,并且将数据保存在原始文档下更方便) 每个文档存储一些图像详细信息: [ { "filename": "example.png", "author": "example", "caption": "...", }, ... ] [ "tag text 1", "tag text 2", ..

我找不到验证firestore中列表的内容的解决方案。有什么解决办法吗

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

每个文档存储一些图像详细信息:

[
  {
    "filename": "example.png",
    "author": "example",
    "caption": "...",
  },
  ...
]
[
  "tag text 1",
  "tag text 2",
  ...
]
或者,为每个文档存储几个标记:

[
  {
    "filename": "example.png",
    "author": "example",
    "caption": "...",
  },
  ...
]
[
  "tag text 1",
  "tag text 2",
  ...
]
如何访问每个项目(或循环?)以验证它们,以便在第一个图像示例中,可以验证它们(例如):

  • 每一项都是一张地图
  • 文件名是一个字符串
  • 作者是一根弦
  • 标题是具有特定长度的字符串
或者,以标签为例

  • 每个项目都是一个特定长度的字符串
或者,有没有更好的解决方案,可以在不创建新集合或子集合的情况下将此类数据存储在文档中

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

如果你想在服务器端安全规则中做到这一点,那么你就一针见血了:Firebase的服务器端安全规则中没有循环功能。看。这限制了在安全规则中可以实现的功能,就我所见,您提到的任何用例都不能只用安全规则来实现

我能想到的最简单的方法是使用云函数来实现逻辑。您可以让云函数检查当前集合中的文档,也可以让客户端写入不同的集合(即“待定”文档),让云函数验证文档,然后将其移动到实际集合

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

如果你想在服务器端安全规则中做到这一点,那么你就一针见血了:Firebase的服务器端安全规则中没有循环功能。看。这限制了在安全规则中可以实现的功能,就我所见,您提到的任何用例都不能只用安全规则来实现


我能想到的最简单的方法是使用云函数来实现逻辑。您可以让云功能检查当前集合中的文档,也可以让客户端写入其他集合(待定文档),让云功能验证文档,然后将其移动到实际集合。

谢谢!我想可能是这样,但我想核实一下。这是一个云功能解决方案。谢谢Frank!我想可能是这样,但我想核实一下。这是一个云功能解决方案。