我正在尝试使用firebaseUI库在使用create-react-app制作的反应应用中进行身份验证。它在标准的html / js应用程序中运行良好,但我不能让它与反应一起工作。
这是我的简单登录组件:
import React, { Component } from 'react'
import * as firebase from 'firebase'
import firebaseui from 'firebaseui'
const dbConfig = {
apiKey: ...,
authDomain: ...,
...
}
firebase.initializeApp(dbConfig)
const uiConfig = {
signInFlow: 'popup',
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.EmailAuthProvider.PROVIDER_ID
]
}
class Login extends Component {
componentDidMount() {
console.log("component mounted")
var ui = new firebaseui.auth.AuthUI(firebase.auth())
ui.start('#firebaseui-auth-container', uiConfig)
}
render() {
return (
<div id="firebaseui-auth-container"></div>
)
}
}
export default Login
所有firebase内容都有效,直到我尝试使用new firebaseui.auth.AuthUI(firebase.auth())
初始化firebaseUI小部件,这时它会抛出错误firebase.initializeApp is not a function
。问题似乎源于node_modules/firebaseui/dist/npm.js:340
,其中调用了initializeApp。
其他人遇到过这种行为(并希望解决它)?
这是我的火力基地依赖性btw:
"firebase": "^5.0.2",
"firebaseui": "^3.0.0"
答案 0 :(得分:0)
新版本的firebase(5.0.2)存在问题。切换到版本4.13.0解决了这个问题。