- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将应用的 Firebase 版本从 3.5.0 升级到 4.1.3,并注意到在用户验证其电子邮件地址后首次成功登录后,不再调用 onAuthStateChange 回调函数。
该应用程序是用 JavaScript 编写的。
这些是我的代码的相关部分:
回调设置
firebase.auth().onAuthStateChanged(onAuthStateChange);
回调
function onAuthStateChange (user) {
console.log(user); // Not appearing in console
}
登录
firebase.auth().signInWithEmailAndPassword(email, password)
.then(function (user) {
console.log("signInWithEmailAndPassword success"); // This appears in the console
})
.catch(function(error) {
console.log("signInWithEmailAndPassword", error);
self.signInError = error.message;
$timeout(function () {
$scope.$apply();
});
});
编辑 - 这些是重现问题的步骤(我的应用程序用户的典型操作):
用于开发和测试目的(不是用户会做但我已经做了)
最佳答案
问题是 auth().createUserWithEmailAndPassword() 实际上确实登录了一种类型的用户。
你会发现如果你输入
firebase.auth().onAuthStateChanged(user => {
console.log("onAuthStateChanged()");
createUserWithEmailAndPassword() 确实会触发控制台日志。但是,似乎没有有效的“用户”对象,这可以解释为什么没有任何内容出现,因为您只记录了用户。
我遇到了完全相同的问题。在 sendEmailverification() 步骤中,请注意它如何要求您使用 auth().currentUser,表示必须有某种用户登录(我不确定 firebase 如何处理电子邮件验证用户和未验证用户之间的差异场景)
您可以在发送电子邮件验证后简单地调用 signOut() 函数,它应该允许 onAuthStateChanged() 函数在第一次登录时调用(无需重新加载应用程序)
firebase.auth().currentUser.sendEmailVerification()
.then(() => {
console.log("Email verification sent");
firebase.auth().signOut().then(() => {
console.log("Signed out!");
}).catch((err) => {
console.log("Error signing out!", err);
});
令人困惑的是,您实际上可以成功地“登录”,而不会导致 AuthStateChanged 发生变化或返回任何错误。
TLDR:记得在发送电子邮件验证后使用 auth().signOut() 函数。
关于javascript - 火力地堡 4.1.3 : onAuthStateChange not called after first sign in with email and password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108570/
我正在使用 Firebase 在我的应用程序中添加登录/注册。它运行良好,但现在我想检查用户在打开应用程序时是否已经注册并登录,如果是这样,则向他显示主页,否则向他显示登录页面。所以我做了一些搜索,主
我使用 flutter 。我想仅在 2020 年 4 月 26 日这一周将 Firebase 中的 CH 值更新为 false。什么时候有办法? 失败的 Ex.cord: _firestore.col
我来寻求您对我的申请中遇到的问题的帮助。 问题是这样的:新闻源上的帖子位于此捕获中的此帖子 -> [postid] 位置下的数据库中 ,当用户保存帖子时,它在数据库中的存储方式如下:用户 -> [us
我是一名优秀的程序员,十分优秀!