我正在使用React实现Firebase,这是我第一次使用上下文,所以我的问题是如何限制未注册的用户注册?现在,当我用一些随机的电子邮件登录时,它会把我转到主页
这就是我所拥有的
firebase配置:
const firebaseConfig = {
apiKey: XXXXXXXXXX,
authDomain: XXXXXXXXXX,
projectId: XXXXXXXXXX,
storageBucket: XXXXXXXXXX,
messagingSenderId: XXXXXXXXXX,
appId: XXXXXXXXXX,
};
const app = initializeApp(firebaseConfig);
export const authentication = getAuth(app);上下文:
const UserContext = createContext();
export const AuthContextProvider = ({ children }) => {
const [user, setUser] = useState({});
const createUser = (email, password) => {
createUserWithEmailAndPassword(authentication, email, password);
};
const signUser = (email, password) => {
signInWithEmailAndPassword(authentication, email, password);
};
const logOut = () => {
return signOut(authentication);
};
useEffect(() => {
const unsubscribe = onAuthStateChanged(authentication, (currenUser) => {
setUser(currenUser);
});
return () => {
unsubscribe();
};
}, []);
return (
<UserContext.Provider value={{ createUser, signUser, user, logOut }}>
{children}
</UserContext.Provider>
);
};
export const UserAuth = () => {
return useContext(UserContext);
};登入网页:
const SignIn = ({ navigation }) => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [showErr, setShowErr] = useState('');
const { user, signUser } = UserAuth();
const handleSignIn = async () => {
try {
await signUser(email, password);
navigation.navigate('Home');
} catch (e) {
console.log(e.message);
}
};
return (
<View
{...}
</View>
);
};
export default SignIn;https://stackoverflow.com/questions/73905400
复制相似问题