import { initializeApp, getApps, getApp } from "@firebase/firestore";
import { getFirestore } from "@firebase/firestore";
const firebaseConfig = {
...config
};
export default function firebaseApp() {
if (!getApps().length) {
firebaseApp = initializeApp(firebaseConfig);
} else {
firebaseApp = getApp(firebaseConfig);
}
}
export const db = getFirestore(firebaseConfig)
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我尝试将 getFirestore 导出为数据库。它在 CRA 中工作正常,但当我尝试在 Next.js 中执行此操作时,出现错误“无法读取未定义的属性‘getProvider’”。
我已经尝试了我能想到的一切:使用了yarn和npm,创建了多个项目,在另一个文件中导入了getFirestore。我不确定是什么原因造成的。
我很困惑如何让当前用户使用SSR来获取一些用户数据。
我一直在使用 context API 和 React,到目前为止它一直在工作,直到我需要 SSR 从 API 获取数据。我想获取当前用户 ID,这样我就可以获得存储在 Firestore 中的令牌。
Auth.js
export const AuthContext = createContext();
export function AuthProvider({ children }) {
const [currentUser, setCurrentUser] = useState(null);
useEffect(() => {
onAuthStateChanged(auth, (user) => {
setCurrentUser(user);
});
}, []);
return (
<AuthContext.Provider value={{ currentUser }}>
{children}
</AuthContext.Provider>
);
}
Run Code Online (Sandbox Code Playgroud)
固态继电器
export async function getStaticProps() {
const api = {
auth: "token",
};
//fetch api
return {
props: {
data,
},
};
}
Run Code Online (Sandbox Code Playgroud) javascript firebase-authentication server-side-rendering next.js