Firebase安全规则:校验token时是否需检查auth.uid非空?
Firebase安全规则优化问题解答
可以直接修改为allow read, write: if request.auth.token.admin == true,无需额外校验request.auth.uid != null,原因如下:
- Firebase安全规则中,
request.auth仅在用户已完成认证时才会存在(非null)。如果用户未登录,request.auth为null,此时访问request.auth.token.admin会直接触发规则判断失败(因为null对象没有token属性),相当于隐式完成了用户已登录的校验。 - 当
request.auth.token.admin == true成立时,必然意味着request.auth非null,request.auth.uid自然也不可能为null,所以原规则中的request.auth.uid != null属于冗余校验,完全可以移除。
简单来说,只要request.auth.token.admin能被正常读取并判断为true,就已经证明用户是已登录状态,额外的uid非空校验是多余的。
内容的提问来源于stack exchange,提问作者Ibrahim Ali
相关产品推荐
相关产品推荐

