firebase 如何在Firestore中强制执行数据库模式?

guicsvcw  于 2023-08-07  发布在  其他
关注(0)|答案(4)|浏览(113)

我想在Firestore中强制执行一个数据库模式,这是一个默认情况下不需要模式的noSQL风格的数据库。
到目前为止,我已经研究了使用Firebase Rules系统作为模式实施的可能途径:https://firebase.google.com/docs/firestore/security/rules-structure
我想:
1.确保某些字段具有正确的数据类型(String、Number、bool)
1.确保存在某些字段(例如:用户类上的firstName和lastName)
1.如果不需要,请确保字段设置为“undefined”。(这个我不确定-我需要这样做吗?)
有人找到了从服务器端强制模式的好方法吗?

8aqjt8rx

8aqjt8rx1#

听起来你已经找到了答案-安全规则。他们可以检查,以确保一切都按照您期望的方式设置。您应该知道,这适用于通过客户端SDK进行的所有访问,但在后端使用管理员SDK时不适用。
您也可以在添加数据后使用Cloud Functions执行更多检查,如果仍有错误,则撤消操作。

6xfqseft

6xfqseft2#

Firestore不是一个关系数据库,所以模式的概念不适用[源代码Cloud Firestore Data model ]。Firestore中的数据类型由firestore.rules安全规则强制执行。
在关系数据库中,模式定义表、字段、关系、视图、索引、包、过程、函数、队列、触发器、类型、序列、物化视图、同义词、数据库链接、目录、XML模式和其他元素。
[ Wikipedia ]

lymnna71

lymnna713#

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

ifsvaxew

ifsvaxew4#

有点晚了,但如果有人仍然希望在Firebase中强制执行模式,那么看看Fireschema。更激进的选择是查看Supabase

相关问题