не регистрируется пользователь в mini app telegram
Написал мини ап кликер. При первом заходе пользователя должно регистрировать, но этого не происходит и пишет плиз лог ин. Как можно исправить?
App.js
import { Outlet, useNavigate } from 'react-router-dom';
import { onAuthStateChanged } from 'firebase/auth';
import { doc, getDoc, setDoc } from 'firebase/firestore';
import { auth, db } from './firebase';
function App() {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
const navigate = useNavigate();
useEffect(() => {
const unsubscribe = onAuthStateChanged(auth, async (authUser) => {
setLoading(true);
console.log('Auth user:', authUser); // Логирование для отладки
if (authUser) {
try {
const userRef = doc(db, 'users', authUser.uid);
const userSnap = await getDoc(userRef);
if (userSnap.exists()) {
console.log('User exists:', userSnap.data()); // Логирование для отладки
setUser({ id: authUser.uid, ...userSnap.data() });
} else {
const newUser = {
id: authUser.uid,
coins: 0,
energy: 100,
level: 1,
};
await setDoc(userRef, newUser);
console.log('New user created:', newUser); // Логирование для отладки
setUser(newUser);
}
} catch (error) {
console.error("Error fetching user data:", error);
setUser(null);
}
} else {
setUser(null);
navigate('/');
}
setLoading(false);
});
return () => unsubscribe();
}, [navigate]);
if (loading) {
return <div>Loading...</div>;
}
if (!user) {
return <div>Please log in to access this application.</div>;
}
return (
<div className="app">
<header className="bg-blue-500 text-white p-4">
<h1 className="text-2xl font-bold">Telegram Web App</h1>
</header>
<main className="p-4">
<Outlet context={{ user, setUser }} />
</main>
<nav className="fixed bottom-0 w-full bg-gray-200 p-4">
{/* Add navigation buttons here */}
</nav>
</div>
);
}
export default App;```