在云Firestore SDK(Golang)中调试权限被拒绝

在云Firestore SDK(Golang)中调试权限被拒绝,go,google-cloud-firestore,Go,Google Cloud Firestore,我有使用AWS的经验,但这是我第一次尝试谷歌云,我被困在如何正确调试它上。我正在构建一个简单的实验设置,使用CloudFireStore存储一些数据,并计划使用一些小API函数来查询数据 我正在从一个Go应用程序输入我的信息,该应用程序是我使用官方的Go SDK构建的。一切都正常,但当我运行它时,我看到的只是rpc错误:code=PermissionDenied desc=缺少或权限不足。 我已尝试将身份验证设置为在Firestore规则控制台中打开(允许读取,写入:如果为true),但我仍然看

我有使用AWS的经验,但这是我第一次尝试谷歌云,我被困在如何正确调试它上。我正在构建一个简单的实验设置,使用CloudFireStore存储一些数据,并计划使用一些小API函数来查询数据

我正在从一个Go应用程序输入我的信息,该应用程序是我使用官方的Go SDK构建的。一切都正常,但当我运行它时,我看到的只是
rpc错误:code=PermissionDenied desc=缺少或权限不足。

我已尝试将身份验证设置为在Firestore规则控制台中打开(
允许读取,写入:如果为true
),但我仍然看到相同的错误,因此我生成的凭据似乎存在问题,而不是Firestore本身

有问题的凭证是在谷歌云主控制台的服务帐户下生成的。我已将其保存为JSON文件,并通过
选项将其加载到应用程序中。WithCredentialsFile()
然后将其传递到
NewFirestoreWriter()
构造函数中

至少对我来说,如何在服务帐户上配置权限还很不明确,因为它的工作方式似乎与Amazon IAM大不相同。我希望找到一种方法来添加与Firestore相关的特定操作,但一旦创建了服务帐户,我就找不到任何类似的方法。在权限下,我似乎可以将其他帐户与服务帐户关联,这似乎与我想做的事情正好相反。或者,一旦我拥有了服务帐户,我是否需要使用另一个身份来做任何事情,比如亚马逊STS?还是我找错树了

我在玩应用程序的同时在本地运行,计划稍后考虑部署

我想我的问题是:

  • 在对Firestore进行编程写入时,我是否应该使用不同形式的凭据
  • 我正在使用的凭据需要什么权限
  • Google服务帐户权限是如何与Firestore访问规则交互的,还是完全独立的

提前谢谢你的帮助。

我终于找到了答案。原来我在看一些屏幕时读得太快了

使用凭证的编程方法很好,但服务帐户设置不正确

如果其他任何人有类似问题,解决方法是:

  • 转到IAM(非标识)下的“访问”。来自AWS的这让我有点困惑,因为我希望角色是身份的下级,而不是独立的级别
  • 单击服务帐户旁边的编辑按钮
  • 添加云数据存储用户和云数据存储所有者角色(现在可以了,我将努力削减权限!)。这让我特别困惑,因为我正在寻找“Firestore”或“Cloud Firestore”,还有一个非常相似的名字“Cloud Filestore”,这让我大吃一惊
几秒钟后,它开始工作

根据,

在此环境中,不会根据Firestore安全规则评估请求


因此,我将在Firebase中的访问权限重置为
允许读、写:如果为false

您是否尝试通过Firebase quickstart进行go?是的,这就是我正在做的-初始化服务帐户,下载json凭据,然后通过
options…