javascript - 从 R Shiny 应用程序调用 Firebase 身份验证 UI
问题描述
从 R Shiny 应用程序调用 Firebase 身份验证 UI
我正在尝试从我的 Shiny 应用程序中调用 firebase auth UI。目标是 Shiny with Firebase 中的基本授权流程。
以下是文件夹结构
├── ui.R
├── server.R
├── global.R
├── www
├── fire-auth-sign-in.js
├── firebase-console-config.js
├── firebase-ui-auth.css
├── firebase-ui-auth.js //Firebase's own authentication js file
├── ui
├── successfulRegistration
├── sign-in.R
全局.R
library(shiny)
library(shinyjs)
library(DT)
服务器.R
function(input, output, session) {
##### App for signed in user
signed_in_user_df <- reactive({
req(session$userData$current_user())
out <- session$userData$current_user()
out <- unlist(out)
data.frame(
name = names(out),
value = unname(out)
)
})
output$user_out <- DT::renderDT({
datatable(
signed_in_user_df(),
rownames = FALSE,
options = list(
dom = "tp",
scrollX = TRUE
)
)
})
}
用户界面
fluidPage(
shiny::singleton(
shiny::tags$head(
tags$script(src="https://www.gstatic.com/firebasejs/7.5.2/firebase-app.js"),
tags$script(src="https://www.gstatic.com/firebasejs/7.5.2/firebase-auth.js"),
shiny::tags$script(src="firebase-ui-auth.js"),
shiny::tags$link(rel = "stylesheet", href="firebase-ui-auth.css"),
shiny::tags$script(src="fire-auth-sign-in.js"), # UI loader
shiny::tags$script(src="firebase-console-config.js") #Firebase app configuration copied from firebase console
)
),
tags$script("firebase.initializeApp(firebaseConfig);"),
source("ui/sign-in.R", local = TRUE)$value,
source("ui/successfulRegistration.R", local = TRUE)$value
)
fire-auth-sign-in.js
// Initialize the FirebaseUI Widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());
var uiConfig = {
callbacks: {
signInSuccessWithAuthResult: function(authResult, redirectUrl) {
// User successfully signed in.
return true;
},
uiShown: function() {
document.getElementById('loader').style.display = 'none';
}
},
signInSuccessUrl: 'github.com',
signInOptions: [
firebase.auth.EmailAuthProvider.PROVIDER_ID,
firebase.auth.PhoneAuthProvider.PROVIDER_ID
],
// Terms of service url.
};
// Finally, render the FirebaseUI Auth interface:
ui.start('#firebaseui-auth-container', uiConfig);
在ui.R
和 my之间fire-auth-sign-in.js
,我无法创建正确的连接,因为 UI 不会从一开始就加载。你能告诉我我能做些什么来完成这项工作吗?
解决方案
推荐阅读
- r - 错误:`summarise()` 输入 `wt` 的问题:geom_net 函数与新的 dplyr 版本不兼容
- security - 如何使 ImageMagick 在 Heroku-18 堆栈上保持最新?
- java - 如何使用 ArrayAdapter 从 Firebase 数据库中读取数据并在 ListView 中显示多个字段
- angular - 渲染中的角度错误 - 未找到组件
- c - 在 C 中的 Unicorn 模拟器中设置堆栈和堆
- c# - c# ref struct 参数内联
- javascript - 尝试对语义-ui Dimmer 使用 State() 时出现“错误:重新渲染过多”
- spring - Spring Security 不限制访问
- java - HtmlUnit 缺少形式参数
- symfony - 如何在 EasyAdmin Symfony 中创建可重用的块