聚合物Fire-base登录将用户返回为' null'

时间:2015-03-09 01:49:28

标签: firebase polymer firebasesimplelogin

所以我正在尝试使用聚合物和<firebase-login>元素构建一个漂亮的多标签登录表单。它看起来像这样:https://ele.io/caseybaggz/paper-form

一个标签,我有一些社交登录按钮(google,twitter,fb),另一方面,电子邮件/密码登录/注册。我还在我的<app-router>上使用index.html来路由我的所有视图(元素),并使用<pvc-globals>来保存全局对象。因此,当用户登录时,它们将被路由到新元素。这是登录代码:

   login: function() {
      if (debug) {
        console.log('Logging in');
        console.log('loginProvider: ' + this.$.login.provider);
        console.log('loginUser: ' + this.$.login.user);
        console.log('global.currentUser: ' + this.globals.currentUser);
      }

      var params;

      try {
        params = JSON.parse(document.querySelector("#params").value);
      } catch (e) {
        params = null;
      }

      if (this.provider == 'password') {
        params = this.params || {};
        params.email = this.email;
        params.password = this.userPassword;
      }

      this.globals.currentUser = this.user;
      this.$.login.login(params);

      // If login successful
      window.location.href = "#/home";
    },

这与firebase演示提供的基本相同。 因此,出于某种原因,我可以成功记录人员,但是当我控制firebase user对象时,它会返回null。此外,登录功能比firebase使用社交按钮记录用户更快地重新路由人员。

我的主要问题:为什么firebase在成功登录后说用户对象为空?第二部分是如何重新路由用户 AFTER 登录是否接受了当然?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我建议你使用“真正的”api而不是firebase-login包装器。 在你的情况下,我猜 https://www.firebase.com/docs/web/api/firebase/authwithoauthpopup.html 并从auth方法重定向回调。与全局值的设置相同。

OR

您可以在firebase-login上定义登录函数,并在该函数中执行重定向和设置全局值。