Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Users are occasionally Logged Out

Abierto
#97 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de firebase/firebaseui-web-react

Todos los issues de firebase/firebaseui-web-react

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.