我正在研究使用安全规则构建用户可以在 Firestore 中存储哪些数据。
考虑 /user/{uid} 对象,一个标准的应用程序用户对象,用户必须提供一些个人信息,如:名字、姓氏、性别和生日。其他信息不是必需的,但如果他/她愿意,用户可以提供它们,例如:昵称、图标、个人简介等。
我将如何编写安全规则来检查对象中是否包含所有必填字段,并且存储的对象仅包含必填字段和用户选择提供的任何可选字段?
目前我有这个:
function CheckRequiredFields(requiredFields){
let dataSet = request.resource.data.keys().toSet();
return requiredFields.hasAll(dataSet);
}
奖励:如果有一种方法也可以检查字段值/类型,那将非常有帮助,例如传递 map[string->function(field)] 或 map[string->type] 用于必需和可选参数