Dan*_*gas 5 python r firebase shiny firebase-realtime-database
我在谷歌有一个Firebase拥有流传感器数据的数据库.我有一个Shiny应用程序需要读取此数据并映射传感器及其值.
我试图从Firebase中提取数据R,但找不到任何执行此操作的程序包.该应用目前正在本地下载的数据上运行.
我找到了FireData包裹,但不知道它是如何工作的.
我知道你可以从Firebase中提取数据Python,但我不知道足够的Python这样做,但我愿意在rPython必要的时候在R中编写代码.
我有: - Firebase项目链接 - 用户名 - 密码
有没有人过去尝试过Firebase和R/Shiny?
我希望我的问题很清楚.
R包fireData的入门基础如下。首先,您需要确保已在GCP(Google云平台)上设置了Firebase帐户。一旦建立了一个新项目并命名
现在,您已经有了一个项目,请在概述页面上选择“将Firebase添加到您的Web应用程序”选项。它将为您提供所需的所有凭据信息。
[![]获取网络应用程序的凭据[3]](https://i.stack.imgur.com/EBnh2.png)
处理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
Run Code Online (Sandbox Code Playgroud)
重新启动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")
Run Code Online (Sandbox Code Playgroud)
上载功能将返回其保存的文档的名称,然后您可以使用该名称进行下载。
> upload(x = mtcars, projectURL = db_url, directory = "main")
[1] "main/-L3ObwzQltt8IKjBVgpm"
Run Code Online (Sandbox Code Playgroud)
您上载的数据框(或值向量)将立即在该名称下的Firebase数据库控制台中可用,因此您可以验证一切是否按预期进行。
现在,例如,如果返回的名称已读取,main/-L3ObwzQltt8IKjBVgpm则可以按以下方式下载它。
download(projectURL = db_url, fileName = "main/-L3ObwzQltt8IKjBVgpm")
Run Code Online (Sandbox Code Playgroud)
创建用户后,您可以要求身份验证。例如,您可以像这样创建用户(这些用户出现在您的Firebase控制台中)。
createUser(projectAPI = api_key, email = "test@email.com", password = "test123")
Run Code Online (Sandbox Code Playgroud)
然后,您可以获得他们的用户信息和令牌。
registered_user <- auth(api_key, email = "test@email.com", password = "test123")
Run Code Online (Sandbox Code Playgroud)
然后使用返回的tokenID访问文件。
download(projectURL = db_url, fileName = "main/-L3ObwzQltt8IKjBVgpm",
secretKey = api_key,
token = registered_user$idToken)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |