首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP将Firestore项目从测试模式转换为生产模式?

如何使用PHP将Firestore项目从测试模式转换为生产模式?
EN

Stack Overflow用户
提问于 2022-11-05 23:54:44
回答 2查看 61关注 0票数 1

我们如何将应用程序验证到Firestore?(不使用服务帐户),因为当服务帐户发生冲突时,需要进行身份验证的安全规则。当我切换到生产模式并执行查询时,我收到以下消息

这是在生产模式中设置的规则。

代码语言:javascript
复制
match /{document=**} {
   allow read, write: if request.auth!=null;
}

match /projects/{document=**} {
   allow read, write;
}

这是我的密码。此代码仅在测试模式下工作,如何使其在生产模式下工作?

代码语言:javascript
复制
public function __construct(){
    global $key;
    $this->firestore = new FirestoreClient([
    'keyFilePath' => $key,
    'projectId' => 'test-4c1ff'
  ]);
}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-06 00:41:22

如果您正在使用https://github.com/kreait/firebase-php/,文档将展示如何使用初始化Firebase身份验证,以及如何使用多个受支持的提供者之一的签到

一旦您登录,身份验证信息将与您的请求安全地传递到数据库,然后您可以在您的安全规则中以request.auth的形式访问它,如这里所示。

票数 2
EN

Stack Overflow用户

发布于 2022-11-09 14:14:45

您需要首先向Firebase验证PHP应用程序,这样应用程序才能发出请求。

要做到这一点,请遵循我最近发现的快速解决方案。

  1. 首先,必须在Firebase身份验证控制台中创建自己的身份验证电子邮件和密码。
  2. 将此软件包安装在应用程序上:

composer require kreait/firebase-php

  1. 一旦您完成安装软件包,您可以继续在这里。
代码语言:javascript
复制
use Kreait\Firebase\Factory;
use Kreait\Firebase\Auth;
use Kreait\Firebase\Auth\SignInResult;

$key = ""
$factory = (new Factory)
->withServiceAccount($key)
->withDatabaseUri('Your Firebase Database URi');
$auth = $factory->createAuth();

$email = "Your Email";
$password = "Your Password";
$signInResult = $auth->signInWithEmailAndPassword($email, $password);

注意:记住,这只是静态的,您必须使整个函数更加动态。

现在,您可以在不受安全规则阻碍的情况下向防火墙发出请求。

参考资料:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74332315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档