作者:nissunshine | 来源:互联网 | 2023-01-29 07:39
我在谷歌有一个Firebase
拥有流传感器数据的数据库.我有一个Shiny
应用程序需要读取此数据并映射传感器及其值.
我试图从Firebase中提取数据R
,但找不到任何执行此操作的程序包.该应用目前正在本地下载的数据上运行.
我找到了FireData
包裹,但不知道它是如何工作的.
我知道你可以从Firebase中提取数据Python
,但我不知道足够的Python这样做,但我愿意在rPython
必要的时候在R中编写代码.
我有: - Firebase项目链接 - 用户名 - 密码
有没有人过去尝试过Firebase和R/Shiny?
我希望我的问题很清楚.
1> FvD..:
R包fireData的入门基础如下。首先,您需要确保已在GCP(Google云平台)上设置了Firebase帐户。一旦建立了一个新项目并命名
现在,您已经有了一个项目,请在概述页面上选择“将Firebase添加到您的Web应用程序”选项。它将为您提供所需的所有凭据信息。
[
处理R中此类信息的一种方法是将其添加到.Renviron
文件中,这样您就无需与代码共享(例如,如果它转到github)。在Efficient R Programming Book中有关于如何管理.Renviron文件的很好的描述。
API_KEY=AIzaSyBxxxxxxxxxxxxxxxxxxxLwX1sCBsFA
AUTH_DOMAIN=stackoverflow-1c4d6.firebaseapp.com
DATABASE_URL=https://stackoverflow-1c4d6.firebaseio.com
PROJECT_ID=stackoverflow-1c4d6
重新启动R后(如果进行了任何更改),这将对R会话可用。
因此,现在您可以尝试一下。但首先,请更改您的Firebase数据库的规则,以允许任何人进行更改和阅读(以使这些示例正常工作)
现在您可以运行以下示例
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, projectURL = db_url, 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, email = "test@email.com", password = "test123")
然后使用返回的tokenID访问文件。
download(projectURL = db_url, fileName = "main/-L3ObwzQltt8IKjBVgpm",
secretKey = api_key,
token = registered_user$idToken)