如何在Shiny中结合bslib使用Firebase UI?报错修复
修复Shiny+bslib+Firebase的UI容器报错问题
问题原因
page_navbar的直接子元素仅支持nav_panel/nav_menu这类导航组件,你直接把useFirebase()和firebaseUIContainer()放在顶级位置,不符合它的结构要求,所以抛出错误。
修复方法
把useFirebase()和firebaseUIContainer()放到page_navbar的header参数中,header专门用来放置所有导航面板顶部的通用内容,刚好适配Firebase登录容器的需求。
修正后的代码
library(shiny) library(bslib) library(firebase) ui <- page_navbar( title = "title", sidebar = sidebar("Sidebar"), # 将Firebase相关UI放入header参数 header = tagList( useFirebase(), firebaseUIContainer() ), nav_panel("P1", "Page 1 content"), nav_panel("P2", "Page 2 content"), nav_panel("P3", "Page 3 content"), nav_panel("P4", "Page 4 content") ) server <- function(input, output, session) { f <- FirebaseUI$new()$set_providers( email = TRUE, google = TRUE)$launch() } shinyApp(ui, server)
补充说明
tagList用来将多个UI元素打包成一个整体,作为header的参数值;- 如果希望Firebase容器出现在所有面板底部,也可以换成
footer参数,用法和header一致。
内容的提问来源于stack exchange,提问作者umair durrani
相关产品推荐
相关产品推荐

