微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Rails应用程序连接到Firebase Cloud Firestore

如何解决将Rails应用程序连接到Firebase Cloud Firestore

想从Firebase Cloud Firestore读取数据。我已经创建了一个项目,并通过设置->添加Web应用程序将我的Rails(6.0.3)应用程序添加到了Fire Store数据库中。这为我提供了包含firevbase SDK的脚本标签,该脚本标签在body标签添加到我的Web应用程序中,我完成了所有这些工作。 我正在尝试遵循https://firebase.google.com/docs/firestore/quickstart?authuser=0#ruby上的说明。第一条指令如下: ''' 导出GOOGLE_APPLICATION_CREDENTIALS =“路径/到/您的/keyfile.json” ''' 我已经通过从与Firebase项目关联的服务帐户创建密钥来下载此JSON文件,此密钥已下载并放置在我的项目树中。但是,我不知道将Rails环境中的Google出口信用凭证放在哪里?以前,我尝试将其插入到environment / development.rb中,但是导出关键字不是Ruby语法的一部分。

我已经安装了cloud-firestore-gem,并且在这文章中一直在尝试将所有内容拼凑在一起How to connect to a Firestore database with Ruby。当我在Rails控制台中运行它时:

cred = Google::Cloud::Firestore::Credentials.new("path/to/myJsonSerivcesKey.Json") 

我收到此追溯信息:

Signet::AuthorizationError (Authorization Failed.  Server message:)
{"error":"invalid_scope","error_description":"Invalid OAuth scope or ID token audience provided."}

我认为此错误与我在使用服务帐户中的API密钥时未做正确的事情有关,但我不确定。关于如何更正无效的OAuth范围以及将导出的GOOGLE_APPLICATIONS + CREDENTIALS放置在何处的任何建议都非常有用。另外我不确定为什么需要将Firebase SDK粘贴到应用程序的body标签中,有人可以解释这对应用程序有什么作用吗?

解决方法

我遇到了同样的问题,但除了google-cloud-storage以外,还使用了google-cloud-firestore

对我来说,解决此问题的方法是通过将我的gem文件更改为gem 'google-cloud-storage','<= 1.21.1'来降级云存储gem

,

您需要传递想要的范围:

# A tibble: 4 x 9
#  N_l   UG    S     Sample    rn   `1`      `2`   `3`   Left
#  <chr> <chr> <chr> <chr>  <int> <dbl>    <dbl> <dbl>  <dbl>
#1 1     84    12    S00        1 0.367 0.000319 0.413  0.483
#2 2     84    12    S00        2 0.540 0.000505 0.611  0.646
#3 3     84    12    S00        3 0.591 0.000511 0.685  0.626
#4 4     84    12    S00        4 0.497 0.000395 0.595 NA    

List of scopes available

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。