加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Firebase数据库数据到R

发布时间:2020-12-16 22:31:56 所属栏目:Python 来源:网络整理
导读:我在Google Firebase中有一个包含流媒体传感器数据的数据库.我有一个Shiny应用程序需要读取这些数据并映射传感器及其值. 我试图将Firebase中的数据拉入R,但找不到任何执行此操作的程序包.该应用目前正在本地下载的数据上运行. 我找到了FireData包,但不知道它

我在Google Firebase中有一个包含流媒体传感器数据的数据库.我有一个Shiny应用程序需要读取这些数据并映射传感器及其值.

我试图将Firebase中的数据拉入R,但找不到任何执行此操作的程序包.该应用目前正在本地下载的数据上运行.

我找到了FireData包,但不知道它是如何工作的.

我知道你可以用Python从Firebase中提取数据,但我不知道有足够的Python来做这件事,但如果有必要,我愿意用RPython在R中编码.

我有:
– Firebase项目链接
– 用户名
– 密码

有没有人过去尝试过Firebase和R / Shiny?

我希望我的问题很清楚.

最佳答案
开始使用R package fireData的基础知识如下.首先,您需要确保已设置firebase account on GCP(Google云端平台).一旦建立了一个新项目并给它一个名字

Set up new firebase project

现在您已经有了一个项目,请在概述页面上选择“将Firebase添加到您的Web应用程序”选项.它将为您提供所需的所有凭据信息.

[

在R中处理此类信息的一种方法是将其添加到.Renviron文件中,这样您就不需要与代码共享它(例如,如果它转到github).关于how to manage .Renviron files in the Efficient R Programming Book的描述很好.

API_KEY=AIzaSyBxxxxxxxxxxxxxxxxxxxLwX1sCBsFA
AUTH_DOMAIN=stackoverflow-1c4d6.firebaseapp.com
DATABASE_URL=https://stackoverflow-1c4d6.firebaseio.com
PROJECT_ID=stackoverflow-1c4d6

重新启动R后,这将在您的R会话中可用(如果您进行了任何更改).

所以现在你可以尝试一下.但首先,更改firebase数据库的规则以允许任何人进行更改和读取(以使这些示例正常工作)

Change firebase database permissions

现在您可以运行以下示例

library(fireData)
api_key <- Sys.getenv("API_KEY")
db_url <- Sys.getenv("DATABASE_URL")
project_id <- Sys.getenv("PROJECT_ID")
project_domain <- Sys.getenv("AUTH_DOMAIN")

upload(x = mtcars,projectURL = db_url,directory = "new")

上传功能将返回其保存的文档的名称,然后您可以使用它来下载它.

> upload(x = mtcars,directory = "main")
[1] "main/-L3ObwzQltt8IKjBVgpm"   

您上传的数据框(或值向量)将立即在您的Firebase数据库控制台中以该名称提供,因此您可以验证所有内容是否按预期进行.

现在,例如,如果返回的名称为main / -L3ObwzQltt8IKjBVgpm,则可以按如下方式下载.

download(projectURL = db_url,fileName = "main/-L3ObwzQltt8IKjBVgpm")

创建用户后,您可以要求身份验证.例如,您可以像这样创建用户(用户出现在您的firebase控制台中).

createUser(projectAPI = api_key,email = "test@email.com",password = "test123")

然后,您可以获取其用户信息和令牌.

registered_user <- auth(api_key,password = "test123")

然后使用返回的tokenID来访问文件.

download(projectURL = db_url,fileName = "main/-L3ObwzQltt8IKjBVgpm",secretKey = api_key,token = registered_user$idToken)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读