繁体   English   中英

如何修复这部分代码以允许用户从 Firebase 实时数据库获取他们的收藏夹? 即使 uid 工作,用户也无法查看收藏夹

[英]How do I fix this section of code to allow the user to get their favorites from Firebase Realtime db? even with uid working, user can't view favorites

这是返回的错误消息:TypeError:无法读取 null 的属性 'uid'

这是我需要帮助的来自 FavoritesContext.jsx 组件的代码部分:

useEffect(() => {
    const uid = firebase.auth().currentUser.uid;
        if (!uid) {
            return;
         } else
     db.ref(`users/${uid}/favorites`).on("value", (snapshot) => {
         console.log("favorites: ", snapshot.toJSON());

         const results = Object.entries(snapshot.toJSON() || {}).map(
           ([id, props]) => ({
              id,
              ...props,
              })
            );
          setFavorites(results);
            });
            }, []);   

这是 db 在我的 Base.js 组件中的来源:

export const db = firebase.database(uiConfig); 

这是我的 AuthContext.js 组件中的相关代码:

    export const AuthProvider = ({ children }) => {
     const [currentUser, setCurrentUser] = useState(null);
     const [pending, setPending] = useState(true);

    useEffect(() => {
    app.auth().onAuthStateChanged((user) => {
      setCurrentUser(user);
      setPending(false);
     });
     }, []);

来自 firebase 官方文档

您还可以使用 currentUser 属性获取当前登录的用户。 如果用户未登录,则 currentUser 为空:

你得到 uid null 因为你的用户还没有登录。

你可以在这里阅读更多

https://firebase.google.com/docs/auth/web/manage-users

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM