Как я могу сохранить сеанс входа пользователя Firebase, используя Expo и JavaScript в React Native? Все еще перенаправлеJavascript

Форум по Javascript
Ответить
Anonymous
 Как я могу сохранить сеанс входа пользователя Firebase, используя Expo и JavaScript в React Native? Все еще перенаправле

Сообщение Anonymous »

Я строю нативное приложение React с использованием Expo и JavaScript (без типографии) и интеграции Firebase для аутентификации. После успешного входа пользователя я хочу, чтобы они оставались во входе в систему даже после закрытия и повторного открытия приложения. Вот что я попробовал, и моя текущая настройка: < /p>
Что я проверил /попробовал: < /p>

[*]

Код: Выделить всё

onAuthStateChanged()
работает - он возвращает правильного пользователя после входа в систему
[*] После обновления он запускает с помощью нулевого, означающего сеанс не сохранялся
[*] Убедитесь, что setpersistence () называется сразу после Getauth (app)
[*] no ale to getauth ()
[*] no altauth () нет. SET
[*] Подтверждено AsyncStorage установлен и работает
Прочитайте все связанные документы Firebase и руководства по стойкости выставки инициализируется?

Код: Выделить всё

import { createStackNavigator } from '@react-navigation/stack';
import { NavigationContainer } from '@react-navigation/native';
import Start from './screens/Start'
import Home from './screens/Home'
import Register from './screens/Register'
import Login from './screens/Login'
import TermsAndConditions from './screens/TermsAndConditions'
import useAuth from './hooks/useAuth';

const Stack = createStackNavigator()

export default function App() {
const { user } = useAuth();
console.log('User:', user);

if (user) {
return (






);
} else {
return (









);
}
}
< /code>
firebase.js:
import { initializeApp } from 'firebase/app';
import { initializeAuth, getReactNativePersistence } from 'firebase/auth';
import AsyncStorage from "@react-native-async-storage/async-storage"

const firebaseConfig = {
.... my config here ....
};

export const app = initializeApp(firebaseConfig);

export const auth = initializeAuth(app, {
persistence: getReactNativePersistence(AsyncStorage)
});
< /code>
Useauth.js:
import { useEffect, useState } from 'react';
import { onAuthStateChanged } from 'firebase/auth';
import { auth } from '../config/firebase';

export default function useAuth() {
const [user, setUser] = useState(null);

useEffect(() => {
const unsub = onAuthStateChanged(auth, (user) => {
console.log("Got User:", user);
if (user) {
setUser(user)
} else {
setUser(null)
}
});
return unsub
}, []);
return { user };
}
Дайте мне знать, если вам нужно login.js или my register.js для большего контекста

Подробнее здесь: https://stackoverflow.com/questions/796 ... t-in-react
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»