firebase身份验证是如何工作的?
一旦我执行firebase身份验证是如何工作的?,firebase,react-native,firebase-authentication,Firebase,React Native,Firebase Authentication,一旦我执行 firebase.auth().signInWithEmailAndPassword(email, password).then((user) => { // here I save user to redux and set loggedIn to true }); 我已登录。接下来呢?我的建议。。。 登录后,我进入应用程序的主流程,并在App.js中执行onAuthStateChanged。若我仍然得到用户,我仍然登录,若并没有,我将loggedinkey设置为f
firebase.auth().signInWithEmailAndPassword(email, password).then((user) => {
// here I save user to redux and set loggedIn to true
});
我已登录。接下来呢?我的建议。。。
登录后,我进入应用程序的主流程,并在App.js中执行onAuthStateChanged。若我仍然得到用户,我仍然登录,若并没有,我将loggedinkey设置为false,并将用户重定向到登录屏幕。
接下来,我将使用Redux persist在不同的应用程序启动之间保存loggedIn键
但如果我不自己登出,我会登出吗?如果身份验证会话存在于firebase端,它的生命周期是什么?如何工作?.onAuthStateChanged驱动应用程序的登录状态。这就是它的工作原理
firebase.auth().onAuthStateChanged(function (user) {
if(user){
//unhide non-public elements
} else {
//hide public elements
}
});
然后,您可以使用Firebase安全规则来控制谁有权访问哪些信息。如果身份验证会话存在于Firebase端,它的生命周期是什么?Firebase身份验证会话没有过期时间间隔。它们会一直持续到用户注销,或者直到出现另一个引人注目的事件,例如,其他地方的密码更改需要用户重新验证。好的,明白了。默认情况下,我始终登录。我通过在App.js中执行OnAuthStatechned来检查它,对吗?因此,每次应用程序加载时,当应用程序连接到firebase服务器时,用户都会看到spinner,以检查用户是否仍然登录,以及是否没有任何操作迫使用户注销。这听起来是正确的。但是如果没有看到代码,就很难确定。请注意,在React Native上持久化auth状态在历史上是很棘手的,因此如果您有问题,请确保使用最少的代码返回。隐藏和取消隐藏元素通常看起来如何?它是否应该是所有元素的列表,并且每个元素都应该有一些标志“public”,然后应用程序是否显示它?我通过CSS类来实现。例如,将class=accountholder添加到任何只应向登录用户显示的元素中。然后可以启动一个函数showAccountHolderElements,该函数将从所有函数中删除隐藏的/display:none类。