为什么不';当我使用服务帐户执行kreait/firebase php操作时,firebase规则是否有效?

为什么不';当我使用服务帐户执行kreait/firebase php操作时,firebase规则是否有效?,firebase,google-cloud-firestore,firebase-authentication,firebase-security,Firebase,Google Cloud Firestore,Firebase Authentication,Firebase Security,对不起,我太天真了。我对使用kreait/firebase php包进行身份验证有点困惑。我在firebase控制台上定义了一些规则,如: rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow create,delete:if request.auth.uid == true; }

对不起,我太天真了。我对使用kreait/firebase php包进行身份验证有点困惑。我在firebase控制台上定义了一些规则,如:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
     match /{document=**} {
      allow create,delete:if request.auth.uid == true;
    }

  }
}
问题是,即使我更改了规则,服务的行为(CRUD)也会以同样的方式工作。JSON文档(从google下载的服务帐户)似乎拥有所有权限,或者不需要firebase规则

在我的例子中,我想将访问和数据库操作限制在用户没有身份验证和权限的情况下


我目前正在检查电子邮件/密码。如果请求为true,则该方法将返回一个令牌。之后,我将令牌持久化到缓存中,并在用户注销时将其删除。对于每个请求,中间件都会检查令牌是否存在于缓存中。这样,它只会帮助我限制用户的访问页面。如何限制数据库(CRUD)的操作?谢谢大家!

这种行为是意料之中的。从使用服务帐户初始化的代码访问Firestore将始终绕过安全规则。当提供Firebase身份验证令牌时,安全规则仅适用于从web和移动客户端SDK以及REST API进行访问。

谢谢Doug Stevenson!因此,我的网站开发与PHP不需要firebase的规则,我明白。如何管理用户权限?再次感谢你。你必须做一些适合你特殊需要的东西。谢谢!待会儿见