[英]Firestore Ruby: How to authenticate? (permission denied)
我正在尝试从 ruby 访问 firestore。一切都已设置并正常工作,除非我对文档执行读/写规则。 没有权限。
验证客户端:
creds = Rails.application.credentials.firestore
Google::Cloud::Firestore.configure do |config|
config.project_id = creds[:config][:projectId]
config.credentials = creds[:service_account].to_h
config.emulator_host = "localhost:8888" if Rails.env.development?
end
```rb
@client = Google::Cloud::Firestore.new
@client.col(collection_name).get
这将返回权限被拒绝。 如果我允许对所有文档进行读/写,firestore 会很好地返回文档……所以这是一个 firestore 规则问题。
那么,如何使用 firestore ruby 对用户进行身份验证? 我可以在 ruby firestore admin 中创建令牌...但是在 firestore ruby 中没有 api 来登录它们(对吗?)。
firestore ruby 可以对用户进行身份验证吗? 如果是这样怎么办?
任何帮助表示赞赏。
更新:
错误是:
GRPC::PermissionDenied: 7:
false for 'list' @ L83. debug_error_string:{UNKNOWN:Error received from peer ipv4:127.0.0.1:8888 {created_time:"2022-11-18T17:44:53.265761-08:00", grpc_status:7, grpc_message:"\nfalse for \'list\' @ L83"}}
正如 @orangesoda 之前在评论中发布的那样,存在基于此Github 链接的模拟器问题。 在生产中部署时,一切都按预期工作。
此外,服务器库的身份验证通过 IAM 进行管理。 使用服务帐户时,服务帐户必须具有适当的权限/角色才能访问 Firestore 数据库(并“绕过”安全规则)。
这仅在(我认为是较旧的)文档中有详细说明。
以下是权限/角色及其匹配的 Firestore 操作的列表。 这也是大部分Ruby 文档所在的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.