只是想问一下,如何处理firebase的情况,让我们说,一些棘手的用户避免我的客户端验证并提交一个表格,其中不包含模型中的少数元素,让我们说模型是:
const userProps = {
name: string,
surname: string,
age: number,
}
并且用户提交仅包含:
的对象... = {
name: 'Mark',
age: 50,
}
甚至他提交了所有内容,但提交的内容错误,例如:
... = {
name: 1234,
surname: true,
age: 'hey',
}
如何告诉firebase这个指定的数据库必须是由具有确切类型的元素作为模型userProps
?
感谢:!)
答案 0 :(得分:1)
您可以使用database rules
执行此操作以下是您执行架构的方式:
{
"rules": {
".read": "true",
"users": {
"$uid": {
".write": "true",
".validate": "newData.child('name').isString() && newData.child('surname').isString() && newData.child('age').isNumber()"
}
}
}
}
这允许任何人阅读任何内容,但对/users
的写入必须包含name
,surname
和age
以及正确的类型。由于write
仅为users
定义,因此无法写入数据库中的其他路径。 (您可以在write
键下设置rules
以在任何地方启用写入。
(如果您使用Firebase CLI设置数据库,Firebase将部署规则。)
数据库规则可以强制执行相当复杂的模式,因此请务必阅读文档!
答案 1 :(得分:1)