Firebase 为什么赢了';这不允许我获取文档字段值吗?

Firebase 为什么赢了';这不允许我获取文档字段值吗?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我的火炉店里有这条规则 rules_version = '2'; service cloud.firestore { match /user/{userEmail} { allow create: if request.auth && request.auth.email == userEmail; } match /user/{userEmail=**}/{field} { allow get: if field == 'username'; }

我的火炉店里有这条规则

rules_version = '2';
service cloud.firestore {
  match /user/{userEmail} {
    allow create: if request.auth && request.auth.email == userEmail;
  }
  match /user/{userEmail=**}/{field} {
    allow get: if field == 'username';
  }
}

如果任何文档的
字段
用户名
,我只想允许
使用
从任何人那里获取
,但我认为我做错了所有这些。

虽然我同意道格的观点,你的问题非常缺乏细节,但有一个细节确实很突出:

  match /user/{userEmail=**}/{field} {
    allow get: if field == 'username';
  }
匹配只在集合和文档路径上进行,而不是在字段上

此外,安全规则不是过滤器。它们本身不允许您只获取某些文档而不获取其他文档—您的查询可以这样做,并且它们必须与您指定的安全规则相匹配


请仔细阅读安全规则文档。

请编辑问题,以显示执行您正在使用的查询的应用程序代码,以及数据库中与之匹配的数据。这将比你现在的描述更加清晰。问题中应该有足够的信息,任何人都可以用来重现问题。