如何通过检查 Firebase 中的用户数据来设置 useState
How to set useState by checking User data in Firebase
查询了 Firebase 后,我似乎无法弄清楚如何设置 useState。
我需要 BOX 对除管理员以外的所有人都等于“public URL”。
import { auth } from "../firebase";
...
const [BOX, setBox] = useState('');
useEffect(() => {
if (auth.currentUser?.email === "admin@yahoo.com") {
setBox("https://admin/link");
} else {
setBox("https://public/link");
}
},[auth]);
错误总是不同的。有时它 returns“...空 link”,有时“网络请求失败”。有时它确实显示了正确的数据,但是当我刷新屏幕时它遇到了其中一个错误。
这是我的 firebase 文件
// Import the functions you need from the SDKs you need
import * as firebase from "firebase";
import 'firebase/firestore';
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
const firebaseConfig = {
...
};
// Initialize Firebase
let app;
if (firebase.apps.length === 0) {
app = firebase.initializeApp(firebaseConfig);
} else {
app = firebase.app()
}
const auth = firebase.auth();
const dbFirebase = app.firestore();
export {auth, dbFirebase};
不能在 if 语句中使用 hook...
const [box, setBox] = useState('');
useEffect(() => {
if (auth.currentUser?.email === "admin@yahoo.com") {
setBox("https://admin/link");
} else {
setBox("https://public/link");
}
},[auth]);
对于 firebase 9,您需要按如下方式配置它:
import { initializeApp } from 'firebase/app'
import { getAuth } from 'firebase/auth'
const firebaseConfig = {...}
initializeApp(firebaseConfig)
export const auth = getAuth()
查询了 Firebase 后,我似乎无法弄清楚如何设置 useState。 我需要 BOX 对除管理员以外的所有人都等于“public URL”。
import { auth } from "../firebase";
...
const [BOX, setBox] = useState('');
useEffect(() => {
if (auth.currentUser?.email === "admin@yahoo.com") {
setBox("https://admin/link");
} else {
setBox("https://public/link");
}
},[auth]);
错误总是不同的。有时它 returns“...空 link”,有时“网络请求失败”。有时它确实显示了正确的数据,但是当我刷新屏幕时它遇到了其中一个错误。
这是我的 firebase 文件
// Import the functions you need from the SDKs you need
import * as firebase from "firebase";
import 'firebase/firestore';
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
const firebaseConfig = {
...
};
// Initialize Firebase
let app;
if (firebase.apps.length === 0) {
app = firebase.initializeApp(firebaseConfig);
} else {
app = firebase.app()
}
const auth = firebase.auth();
const dbFirebase = app.firestore();
export {auth, dbFirebase};
不能在 if 语句中使用 hook...
const [box, setBox] = useState('');
useEffect(() => {
if (auth.currentUser?.email === "admin@yahoo.com") {
setBox("https://admin/link");
} else {
setBox("https://public/link");
}
},[auth]);
对于 firebase 9,您需要按如下方式配置它:
import { initializeApp } from 'firebase/app'
import { getAuth } from 'firebase/auth'
const firebaseConfig = {...}
initializeApp(firebaseConfig)
export const auth = getAuth()