当我在node.js cli中重新执行脚本时,firebase.auth()。currentUser返回null

时间:2019-11-01 04:26:07

标签: node.js firebase firebase-authentication

我正在创建节点cli,并在其中使用firebase auth

一切正常

有一个登录命令,当用户执行时,它要求提供凭据。提交后,我从api获取了自定义身份验证令牌,然后使用signinwithcustomtoken并得到了“ currentUser”的值。

根据此页面Access Firebase in your app,我可以在node.js应用中使用Firebase客户端SDK进行身份验证

问题

但是就像我执行另一个命令来显示配置文件数据一样,当我尝试访问firebase.auth().currentUser时它返回null:(

我不创建任何类型的服务器。

我认为Firebase每次运行命令都会重新创建一个新实例 但是为什么不按角度对基松散实例?

1 个答案:

答案 0 :(得分:0)

在Node.js部署中,出于安全原因,默认Auth state persistence模式为firebase.auth.Auth.Persistence.NONE,如Modifying the ASP部分底部所述。这意味着每当您关闭脚本时,都会清除用户状态。

在使用身份验证令牌登录之前,您将需要使用以下代码来更改与浏览器匹配的模式:

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) // <-- this bit
  .then(function() {
    // Users will now be logged in until they explicitly log out
    return firebase.auth().signInWithCustomToken(token);
  })
  .catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
  });