ОБНОВЛЕНИЕ У вас есть все ваши настройки конфигурации на вашем componentDidMount
, они могут запускаться несколько раз, в то время как это приводит к вашей проблеме, я внес следующие изменения и работал как чудо:
Я создаю firebase.js
в корне, рядом с App.js
, эти файлы выглядят так
import `firebase/app`
require(`firebase/auth`)
const firebaseConfig = {
apiKey: '<api-key>',
authDomain: '<app-name>.firebaseapp.com',
databaseURL: 'https://<app-name>.firebaseio.com',
projectId: '<project-id>',
storageBucket: '<app-name>.appspot.com',
messagingSenderId: '<messaging-sender-id>',
appId: '<app-id>'
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
}
export auth = firebase.auth()
export default firebase
И ваш App.js
выглядит так:
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import reducers from './reducers';
import ReduxThunk from 'redux-thunk';
import Router from './Router';
import { auth } from './firebase' // <----
class App extends Component {
componentDidMount () {
this.checkAuth()
}
checkAuth = () {
auth.onAuthStateChanged(function(user, err) {
console.log(user);
if (user) {
console.log(user);
Actions.signUpVerify();
} else {
console.log(err);
}
});
}
render() {
const store = createStore(reducers, {}, applyMiddleware(ReduxThunk));
return (
<Provider store={store}>
<Router />
</Provider>
)
}
}
export default App;
Вы не должны запускать auth для вашего метода рендеринга, потому что он может выполняться потенциально много раз.