Users are occasionally Logged Out
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- firebase, javascript
- Área
- authentication, database
Línea de trabajo
Comienza con Firebase.js, index.js, FirebaseContext.js y el componente Auth, siguiendo la instancia de Firebase a través de onAuthStateChanged y la consulta a Realtime Database. Reproduce el comportamiento de cierre de sesión o de PERMISSION_DENIED e inspecciona en ese punto el estado de autenticación y de la base de datos. Se considera terminado cuando se identifica una causa reproducible y se documenta o implementa una solución verificada, pero el issue no proporciona pruebas ni criterios de aceptación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello guys, I am having a weird behavior where Firebase occasionally logs out my users
Here is how I am using Firebase
I have a file called Firebase.js where I configured my Firebase instance as below
import * as firebase from "firebase";
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGE_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
};
class Firebase {
constructor() {
this.firebase = firebase.initializeApp(firebaseConfig);
}
}
export default Firebase;
I made this single instance of Firebase accessible to all my applications in my index.js file as below
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import App from './pages/App';
import {BrowserRouter} from 'react-router-dom'
import Firebase from "./backend/configs/firebase";
import {FirebaseProvider} from "./contexts/FirebaseContext";
ReactDOM.render(
<React.StrictMode>
<FirebaseProvider value={new Firebase()}>
<BrowserRouter>
<App/>
</BrowserRouter>
</FirebaseProvider>
</React.StrictMode>,
document.getElementById('root')
);
serviceWorker.unregister();
Here is my FirebaseContext.js file
import React from "react";
const FirebaseContext = React.createContext(null);
export const FirebaseProvider = FirebaseContext.Provider; export const FirebaseConsumer = FirebaseContext.Consumer;
export default FirebaseContext;
Now I am using StyledFirebaseAuth from the thereact-firebaseui dependency as the way to log in my users as below
import * as React from "react";
import StyledFirebaseAuth from 'react-firebaseui/StyledFirebaseAuth';
import firebase from 'firebase';
import FirebaseContext from "../contexts/FirebaseContext";
export default class Auth extends React.Component {
static contextType = FirebaseContext;
constructor(props, context) {
super(props, context);
this.firebase = this.context.firebase;
this.uiConfig = {
// Popup sign in flow rather than redirect flow.
signInFlow: 'popup',
signInOptions: [{
defaultCountry: 'NG',
provider: firebase.auth.PhoneAuthProvider.PROVIDER_ID,
}], callbacks: {
// Avoid redirects after sign-in.
signInSuccessWithAuthResult: () => false
}
};
this.state = {
loading: false
}
}
// Listen to the Firebase Auth state and set the local state.
componentDidMount() {
let self = this;
this.unregisterAuthObserver = this.firebase.auth().onAuthStateChanged(
(user) => {
if (user != null) {
this.setState({
loading: true
})
const userId = user.uid;
//Fetch in the details of the logged in user
firebase
.database()
.ref(USERS + "/" + userId)
.once('value')
.then(function (snapshot) {
if (snapshot.val()) {
//Code omitted here
window.location = DASHBOARD
} else {
}
}, function () {
});
}
});
}
// Make sure we un-register Firebase observers when the component un-mounts.
componentWillUnmount() {
this.unregisterAuthObserver();
}
render() {
return (
<div>
{
Some code omitted here
}
</div>
);
}
}
After a while I noticed that firebase keeps on logging out the logged in user out such that subsequent database calls fails with PERMISSION_DENIED.
This has wasted alot of my time. Any help would be greatly appreaciated.
Thank you.
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.3k
- Forks
- 246
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de firebase/firebaseui-web-react
-
This Project Is Dead Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
firebase/firebaseui-web-react#292 · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
firebase/firebaseui-web-react#280 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
firebase/firebaseui-web-react#220 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
firebase/firebaseui-web-react#210 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
firebase/firebaseui-web-react#201 · 1 comentario · 1 reacción ·
Todos los issues de firebase/firebaseui-web-react
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100