繁体   English   中英

Firestore Ruby:如何进行身份验证? (没有权限)

[英]Firestore Ruby: How to authenticate? (permission denied)

我正在尝试从 ruby 访问 firestore。一切都已设置并正常工作,除非我对文档执行读/写规则。 没有权限。

使用ruby firestore gem

验证客户端:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM