我想回答一些一般性问题……我在以下方面进行了自己的研究:
•在设置firebase,redux,react状态时,firebase文档收效甚微。
•我知道在Firebase youtube频道中有React和Firebase设置的两部分视频系列,但是与将redux集成到该生态系统无关。
•此youtube视频已有近两年或超过两年的历史,我不知道它们是否仍然适用(https://www.youtube.com/watch?v=p4XTMvagQ2Q)。
•我找到了一些与这种类型的设置有关的教程,但对我来说,它们似乎很有道理,我不知道这些设置是最佳还是具有反模式(https://www.youtube.com/playlist?list=PL4cUxeGkcC9iWstfXntcj8f-dFZ4UtlN3,https://github.com/tiberiuc/redux-react-firebase --resources部分中的redux文档中的内容,我可能是错的,但似乎并没有得到维护,其他人是https://github.com/prescottprue/react-redux-firebase,)。
•我曾尝试接触Slack Firebase社区中的#react,#redux和#react-design渠道,但我不相信这些渠道正在被使用。我是Firebase的初学者,在尝试熟悉这个新数据库时,我需要一些提示。我的问题是:
•是否建议使用此仓库来实现带有redux的firebase并做出反应? https://github.com/FirebaseExtended/reactfire#using-the-firebase-js-sdk-in-react
•我是否应该像React和Firebase的视频那样遵循Firebase API方法的实现?意思是,调用组件生命周期中需要的每种方法,例如:
componentDidMount() {
firebase.auth().onAuthStateChanged(this.updateAuthState);
}
• and set my default state as such to create the store?:
const defaultState = {
auth: {
isAuth: firebase.auth().currentUser,
},
};
我应该通过某种方式将firebase数据库链接到redux动作,例如,使用react-redux-firebase库,或者只是为firebase设置配置文件,然后让redux独立于其运行。
最后,我目前正在使用功能的每个组件中导入Firebase,使用Firebase的正确方法是吗?还是应该采用其他方法,例如:https://www.robinwieruch.de/complete-firebase-authentication-react-tutorial/
以上教程为与Firebase相关的所有功能创建了一个类,并在需要时实例化该类。
非常感谢您提供的任何帮助,感谢您能为我提供帮助的任何信息或资源。
答案 0 :(得分:1)
如果您使用的是基于类的方法,则必须在componentDidMount内部进行API调用,所以在那里做得很好。但是,我将我的API调用集成到了我的redux存储中。这样,所有代码都位于同一位置。但是,如果您使用基于功能的组件和最新版本的React,则可以使用钩子。在这种情况下,API调用将进入useEffect内。这样效果更好,因为它可以充当componentDidMount和componentDidUpdate,从而节省了大量时间。
您似乎应该能够在所有组件的父级(大多数情况下为App.js)中提供Firebase。该教程看起来很不错。我在Django后端设置中使用了同一个人。
最后但并非最不重要的一点是,您可以将默认值存储在reducer内。将API调用保留在您的操作中,并将默认值保留在reducer中,这样可以节省一些代码。