Firestore PHP 客户端权限被拒绝

问题描述 投票:0回答:1

我想使用Google的Firestore来保存用户数据,而后端使用PHP。到目前为止,我配置的访问规则如下:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

我遵循了谷歌的官方文档,我的代码如下所示:

$firestore = new FirestoreClient([
  'projectId' => env('firebase.project.id'),
  'keyfileName' => env('firebase.key.file')
]);

$collection = $firestore->collection('users');
$document = $collection->document($uid);

//this one triggers the permission error
$secret_key = $document->snaphot->get('secret_key');

然后我得到:

PERMISSION_DENIED: Missing or insufficient permissions.

我尝试像这样修改我的规则:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

没有区别。顺便说一句,firebase 身份验证部分有效,我可以创建用户并让他们登录。此外,如果我关闭规则,错误就会消失,但显然这不是解决方案。我正在使用 CodeIgniter 4.5.5 和最新的

google/cloud-firestore
。当我回到办公室时,我可以链接所有依赖项。现在,我将不胜感激任何帮助。

php firebase google-cloud-firestore firebase-security
1个回答
0
投票

我不知道拼写错误是否存在于您的实际代码中,但我很确定它应该是

$secret_key = $document->snapshot->get('secret_key');
,而不是
$document->snaphot

© www.soinside.com 2019 - 2024. All rights reserved.