typescript - Unsubscribe 类型从何而来?
问题描述
嗨,如果用户在组件内可用或不在,我正在尝试返回状态。我想要做的是return true
如果用户登录else false
我正在使用 fire base 提供的方法来跟踪用户的登录状态
firebase.auth().onAuthStateChanged
这是我的代码。
const isLoggedIn = firebase.auth().onAuthStateChanged(user => {
console.log(!!user)
return !!user;
});
const showSaveTheProgressButton:boolean = isLoggedIn;
但是当我尝试从这个方法返回布尔值时,我得到的是别的东西而不是布尔值
Type 'false | Unsubscribe' is not assignable to type 'boolean'.
以上是我从程序中得到的错误声明。据我了解,该程序不应该Unsubscribe
正确返回
解决方案
你没有onAuthStateChanged
正确使用。它不会返回您在其回调中返回的值。无论您传递给它的函数做什么,它总是立即返回一个取消订阅函数。每当登录和注销之间发生变化时,您应该使用回调对用户的状态采取行动。
如果您想要立即获取当前用户对象(如果有用户登录),那么只需使用firebase.auth().currentUser
. 但是,您应该知道,当页面加载时,它总是会立即返回 null。您应该onAuthStateChanged
知道用户对象何时首次可用,这就是您想要知道的。
推荐阅读
- node.js - 如何在nodejs中同步发送for循环中的请求?
- python - 迁移到 debian Strech 后无法使用 pip3
- c# - WPF C#如何将第一个窗口设置为只读,直到我关闭第二个窗口?
- sql - 基于另一列的值对 Postgres 表列进行字典排序
- javascript - javascript 将 HTML-ID 识别为“已定义”?
- javascript - 访问javascript对象中空键的值
- ios - 在导航器中移动组时 XCode 崩溃
- javascript - 带有 django 的 vuejs v-for 不适用于动态数据
- qtp - UFT/QTP 恢复方案功能
- python - 在 tkinter 中显示带有按钮/文本的图像