所以我正在尝试使用聚合物和<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 登录是否接受了当然?
提前致谢!
答案 0 :(得分:0)
我建议你使用“真正的”api而不是firebase-login包装器。 在你的情况下,我猜 https://www.firebase.com/docs/web/api/firebase/authwithoauthpopup.html 并从auth方法重定向回调。与全局值的设置相同。
OR
您可以在firebase-login上定义登录函数,并在该函数中执行重定向和设置全局值。