Firebase Auth示例中unsubscribe()有什么作用?为何会调用自身?
这个写法的核心作用是让注册的onAuthStateChanged监听器仅执行一次,执行后立刻解除监听,具体逻辑如下:
firebase.auth().onAuthStateChanged()调用时会同步返回一个取消订阅的函数,我们把它赋值给了unsubscribe变量。只要Firebase的认证状态发生变化,你注册的回调函数就会被触发。- 在回调内部第一行就执行
unsubscribe(),等于第一次触发回调时就直接把监听器销毁了,后续不管认证状态再怎么变,这段回调逻辑都不会再被触发。 - 这个场景下这么设计的原因很明确:你此时只需要拿到谷歌登录完成后、Firebase侧同步完毕的用户信息,不需要持续监听后续的认证状态变更。这么写既可以避免后续不必要的逻辑触发,也能防止监听器持续驻留带来的内存泄漏问题。
内容的提问来源于stack exchange,提问作者thecanteen
相关产品推荐
相关产品推荐

