Firebase实时数据库规则配置求助:仅允许可信域名读写失败
Firebase实时数据库域名限制规则修复方案
你当前规则失效的核心原因是:Firebase默认认证令牌(auth.token)中并不包含domain字段,所以auth.token.domain === 'trusteddomain.com'这个条件永远无法匹配。
要实现仅允许指定可信域名的读写操作,应该使用request.origin来校验请求的来源地址,这是Firebase规则中专门用于检查web请求来源的字段。
正确的规则示例
{ "rules": { ".read": "request.origin === 'https://mywebsite.com' || request.origin === 'https://www.mywebsite.com'", ".write": "request.origin === 'https://mywebsite.com' || request.origin === 'https://www.mywebsite.com'" } }
关键注意事项
- 必须包含完整的源地址:要带上协议(
http://或https://),同时区分www和非www域名,因为二者属于不同的源 - 仅适用于web客户端:
request.origin只有浏览器发起的请求才会携带,移动端APP、服务器端调用等非web请求不会有这个字段,会直接被规则拒绝 - 子域名需单独添加:如果你的可信域名包含子域名(如
app.mywebsite.com),需要在规则中补充对应的源地址 - 精确匹配要求:大小写、端口(非默认端口时)都必须完全一致,比如
http://mywebsite.com和https://mywebsite.com是两个不同的源
内容的提问来源于stack exchange,提问作者ProwtProject
相关产品推荐
相关产品推荐

