6

我想在 Firestore 中强制实施数据库模式,这是一种默认情况下不需要方案的 noSQL 样式数据库。

到目前为止,我已经研究过使用 Firebase 规则系统作为架构实施的可能途径: https ://firebase.google.com/docs/firestore/security/rules-structure

我想:

  1. 确保某些字段具有正确的数据类型(字符串、数字、布尔值)
  2. 确保存在某些字段(例如:用户类上的名字和姓氏)
  3. 如果不需要,请确保将字段设置为“未定义”。(这个我不确定——我需要这样做吗?)

有没有人找到一种从服务器端强制执行模式的好方法?

4

3 回答 3

2

听起来您已经找到了答案——安全规则。他们可以检查以确保一切都按您期望的方式设置。您应该知道,这适用于通过客户端 SDK 进行的所有访问,但在您的后端使用 Admin SDK(如果有)时则无效。

您也可以在添加数据后使用 Cloud Functions 进行更多检查,如果仍有问题,请撤消操作。

于 2018-12-17T16:47:03.163 回答
2

Firestore 不是关系数据库,因此架构的概念不适用 [来源Cloud Firestore 数据模型]。Firestore 中的数据类型由firestore.rules安全规则强制执行。

在关系数据库中,模式定义了表、字段、关系、视图、索引、包、过程、函数、队列、触发器、类型、序列、物化视图、同义词、数据库链接、目录、XML 模式和其他元素。

[维基百科]

于 2018-12-17T17:02:29.260 回答
0

应使用模式描述和验证库,例如 Joi - https://github.com/hapijs/joi

于 2020-03-09T08:35:11.657 回答