如何在Firestore中实施数据库架构?

时间:2018-12-17 16:43:43

标签: firebase google-cloud-firestore google-cloud-functions firebase-security-rules

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

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

我想:

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

有人发现从服务器端强制实施架构的好方法吗?

3 个答案:

答案 0 :(得分:1)

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

  

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

[Wikipedia]

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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