You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行signUpUser函数时出现FirebaseError:权限缺失或不足

排查Firestore权限错误(Missing or insufficient permissions)

核心原因:Firestore规则字段名拼写错误

你的isValidUser函数中存在字段名拼写错误,导致数据验证失败,触发权限拒绝:

  • 规则里写了incomingData().firstname.size(),但实际提交的字段是first_name(下划线分隔)
  • 同样,incomingData().lastname.size()应该是incomingData().last_name.size()

因为规则要求验证的字段不存在,直接导致isValidUser()返回false,最终allow create的条件不满足,抛出权限错误。

修复后的Firestore规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    
    match /Users/{userId}{
      // 允许已认证用户创建符合格式的用户文档
      allow create: if isValidToSignup() && isValidUser();
    }

    function isValidToSignup(){
      return request.auth.uid != null
    }
    function isValidUser() {
       return  incomingData().first_name is string &&
               incomingData().first_name.size() > 2 && incomingData().first_name.size() < 30 &&
               incomingData().last_name is string &&
               incomingData().last_name.size() > 2 && incomingData().last_name.size() < 30 &&
               incomingData().mobile is string 
   }
   function incomingData() {
      return request.resource.data;
   }
}
}

额外检查点

  • 确认signUpUser函数中的password变量已正确定义:你的函数参数里没有传入password,但调用createUserWithEmailAndPassword时用到了该变量,若未定义会导致用户创建失败,间接影响后续Firestore写入。
  • 验证created_date字段是否符合规则:规则中没有限制该字段,serverTimestamp()是合法的Firestore时间类型,不会触发验证问题。

内容的提问来源于stack exchange,提问作者abdou_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:40:37