我们如何向Firestore验证应用程序?(不使用服务帐户),因为当服务帐户与需要验证的安全规则发生冲突时。当我切换到生产模式并执行查询时,我收到此消息
这是在生产模式中设置的规则
match /{document=**} {
allow read, write: if request.auth!=null;
}
match /projects/{document=**} {
allow read, write;
}
这是我的代码,这段代码只在测试模式下工作,我如何让它在生产模式下工作呢?
public function __construct(){
global $key;
$this->firestore = new FirestoreClient([
'keyFilePath' => $key,
'projectId' => 'test-4c1ff'
]);
}
2条答案
按热度按时间9o685dep1#
如果您使用的是https://github.com/kreait/firebase-php/,文档将介绍如何执行initialize Firebase Authentication,然后使用众多受支持的提供商之一登录。
登录后,身份验证信息将与您的请求一起安全地传递到数据库,然后您可以在安全规则中以
request.auth
的身份访问它,如下所示。ilmyapht2#
您需要首先向Firebase验证您的PHP应用程序,以便您的应用程序发出请求。
要做到这一点,按照这个快速解决方案,我最近发现。
1.首先,您必须在Firebase验证控制台中创建自己的验证电子邮件和密码。
1.在您的应用程序上安装此套件:
composer require kreait/firebase-php
1.安装完软件包后,您可以继续此处的操作。
注意:请记住,这只是静态的,您必须使整个函数更动态。
现在您可以向firebase发出请求,而不会被安全规则阻止。
参考编号: