首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Firebase:如何防止在firestore中写入特定字段?

Firebase:如何防止在firestore中写入特定字段?
EN

Stack Overflow用户
提问于 2018-08-09 22:27:19
回答 1查看 1.2K关注 0票数 7

规则集保护用户的条目,如下所示:

  • 只有他本人或管理员才能读取他的数据对象只有管理员才能更新用户的权限
  • 用户可以更新其所有数据,除非他将权限对象设置为

规则看起来像这样:

match /users/{userId} {
  allow read: if isCurrentUser(userId) || isAdmin();
  allow write: if (isCurrentUser(userId) && !isModifyingPermissions()) || isAdmin();

  function isModifyingPermissions(){
    return request.resource.data['permissions'] != null;
  }
}

我被isModifiyingPermissions()函数卡住了。如果请求具有permissions属性值,它会正确地拒绝写入。但是,如果未提供permissions属性,则规则将崩溃,并说明以下情况:

Error: simulator.rules line [19], column [15]. Property permissions is undefined on object.

如何写“检查请求资源上的属性的存在”?

EN

回答 1

Stack Overflow用户

发布于 2018-08-09 22:31:45

好的,这就是解决方案:

  function isModifyingPermissions(){
    return request.resource.data.keys().hasAny(["permissions"]);
  }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51769592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档