Firestore 安全规则将对象限制为必需和可选参数

时间:2021-03-02 06:10:55

标签: google-cloud-firestore firebase-security

我正在研究使用安全规则构建用户可以在 Firestore 中存储哪些数据。

考虑 /user/{uid} 对象,一个标准的应用程序用户对象,用户必须提供一些个人信息,如:名字、姓氏、性别和生日。其他信息不是必需的,但如果他/她愿意,用户可以提供它们,例如:昵称、图标、个人简介等。

我将如何编写安全规则来检查对象中是否包含所有必填字段,并且存储的对象仅包含必填字段和用户选择提供的任何可选字段?

目前我有这个:

function CheckRequiredFields(requiredFields){
  let dataSet = request.resource.data.keys().toSet();
  return requiredFields.hasAll(dataSet);
}

奖励:如果有一种方法也可以检查字段值/类型,那将非常有帮助,例如传递 map[string->function(field)] 或 map[string->type] 用于必需和可选参数

0 个答案:

没有答案