在云Firestore SDK(Golang)中调试权限被拒绝
我有使用AWS的经验,但这是我第一次尝试谷歌云,我被困在如何正确调试它上。我正在构建一个简单的实验设置,使用CloudFireStore存储一些数据,并计划使用一些小API函数来查询数据 我正在从一个Go应用程序输入我的信息,该应用程序是我使用官方的Go SDK构建的。一切都正常,但当我运行它时,我看到的只是在云Firestore SDK(Golang)中调试权限被拒绝,go,google-cloud-firestore,Go,Google Cloud Firestore,我有使用AWS的经验,但这是我第一次尝试谷歌云,我被困在如何正确调试它上。我正在构建一个简单的实验设置,使用CloudFireStore存储一些数据,并计划使用一些小API函数来查询数据 我正在从一个Go应用程序输入我的信息,该应用程序是我使用官方的Go SDK构建的。一切都正常,但当我运行它时,我看到的只是rpc错误:code=PermissionDenied desc=缺少或权限不足。 我已尝试将身份验证设置为在Firestore规则控制台中打开(允许读取,写入:如果为true),但我仍然看
rpc错误:code=PermissionDenied desc=缺少或权限不足。
我已尝试将身份验证设置为在Firestore规则控制台中打开(允许读取,写入:如果为true
),但我仍然看到相同的错误,因此我生成的凭据似乎存在问题,而不是Firestore本身
有问题的凭证是在谷歌云主控制台的服务帐户下生成的。我已将其保存为JSON文件,并通过选项将其加载到应用程序中。WithCredentialsFile()
然后将其传递到NewFirestoreWriter()
构造函数中
至少对我来说,如何在服务帐户上配置权限还很不明确,因为它的工作方式似乎与Amazon IAM大不相同。我希望找到一种方法来添加与Firestore相关的特定操作,但一旦创建了服务帐户,我就找不到任何类似的方法。在权限下,我似乎可以将其他帐户与服务帐户关联,这似乎与我想做的事情正好相反。或者,一旦我拥有了服务帐户,我是否需要使用另一个身份来做任何事情,比如亚马逊STS?还是我找错树了
我在玩应用程序的同时在本地运行,计划稍后考虑部署
我想我的问题是:
- 在对Firestore进行编程写入时,我是否应该使用不同形式的凭据
- 我正在使用的凭据需要什么权限
- Google服务帐户权限是如何与Firestore访问规则交互的,还是完全独立的
提前谢谢你的帮助。我终于找到了答案。原来我在看一些屏幕时读得太快了 使用凭证的编程方法很好,但服务帐户设置不正确 如果其他任何人有类似问题,解决方法是:
- 转到IAM(非标识)下的“访问”。来自AWS的这让我有点困惑,因为我希望角色是身份的下级,而不是独立的级别
- 单击服务帐户旁边的编辑按钮
- 添加云数据存储用户和云数据存储所有者角色(现在可以了,我将努力削减权限!)。这让我特别困惑,因为我正在寻找“Firestore”或“Cloud Firestore”,还有一个非常相似的名字“Cloud Filestore”,这让我大吃一惊
因此,我将在Firebase中的访问权限重置为
允许读、写:如果为false
您是否尝试通过Firebase quickstart进行go?是的,这就是我正在做的-初始化服务帐户,下载json凭据,然后通过options…