我遇到持久用户的问题。
显然,在SDK初始化之前,<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='some-form'>
<input type="radio" data-type="4" data-value="25" data-id="68" name="req-68">
</form>
将为null,因此我正在使用auth.currentUser
。
如果用户没有登录,我想将它们重定向到登录页面,所以我订阅了auth状态,只是为了检查我们是否有用户,这应该在主app组件中完成,以确保没有用户可以在没有authStateChanged
的情况下访问任何内容。
然后是注册页面。因为有一个stateChange的监听器,所以一旦用户登录,该监听器就会在app-component中触发,并开始做不合意的事情,而我们仍然希望在注册页面上做其他事情。
有没有记录的方法,使用Firebase auth.currentUser来订阅它,并从那里获取用户,只需一次,如果没有用户则为null。
答案 0 :(得分:1)
建议的方法是仅根据onAuthStateChange
设置用户的状态,已解决且用户是否存在,然后通知主要进程状态更改。
或
记录在案https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onAuthStateChanged
返回 非null函数()观察者的取消订阅函数。
这意味着你可以这样做:
const unsub = firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
}
});
然后每当你想取消订阅时:
unsub()