Javascript 注销然后以不同的用户身份登录将显示以前的用户信息并覆盖当前用户数据

Javascript 注销然后以不同的用户身份登录将显示以前的用户信息并覆盖当前用户数据,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我对这是如何发生的感到困惑。我知道一个codepin将是最佳的,但我有这么多的文件正在进行,这将是棘手的,将做,如果它达到这一点。如果你想通过查看页面和自己尝试,那么我可以发送链接 设置 AngularJS/角度材质、Firebase主机、Firebase身份验证、Firebase数据库 场地 3页: •登录/注册 •个人资料 •编辑配置文件 所有工作都很好,将信息存储/更新到Firebase非常棒 问题 •以用户A的身份登录,查看个人资料A信息,必要时进行编辑,无论怎样,一切正常。 •单击注

我对这是如何发生的感到困惑。我知道一个codepin将是最佳的,但我有这么多的文件正在进行,这将是棘手的,将做,如果它达到这一点。如果你想通过查看页面和自己尝试,那么我可以发送链接

设置
AngularJS/角度材质、Firebase主机、Firebase身份验证、Firebase数据库

场地
3页:
•登录/注册
•个人资料
•编辑配置文件

所有工作都很好,将信息存储/更新到Firebase非常棒

问题
•以用户A的身份登录,查看个人资料A信息,必要时进行编辑,无论怎样,一切正常。
•单击注销,运行firebase.auth().signOut(),返回登录页面,日志显示没有用户登录
•以用户B的身份登录,查看配置文件A信息,数据库信息已立即从配置文件B信息覆盖到配置文件A。让我大吃一惊。

单击“保存”时,数据只能保存在编辑配置文件页面的一个位置(运行saveData())。

但不知何故,在以用户B身份登录并移动到配置文件页面后,编辑配置文件页面中的saveData()正在启动??它们是具有不同功能的完全不同的控制器。

编辑:另请注意,登录/配置文件/编辑配置文件会通过$routeProvider加载到ng view中,以备不时之需。

编辑2:我在两个控制器(Profile/ProfileEdit)中都设置了console.log,并且在它们获取firebase信息时也设置了console.log。但以下是发生此错误时的日志:
ProfileCtrl输入app.js:242
ProfileCtrl已登录Firebase app.js:247
ProfileEditCtrl已登录Firebase app.js:305
ProfileCtrl已登录Firebase app.js:247


“ProfileEditCtrl已登录Firebase”不应发生,它是一个完全不同的控制器,并且未加载该视图。

这是从两个不同的浏览器还是匿名模式发生的?我想这并不意味着你在注销时没有清除所有变量,包括清除Cookie或本地数据存储(如果你正在使用)。@abc123在测试时,我基本上只使用Chrome私有模式,而且还拉上了Firefox,它甚至从未出现在网站上。。以A身份登录,注销,以B身份登录,覆盖所有内容。我知道这将是一个罕见的例子,有人甚至会这样做(或可能永远不会),但仍然有一些东西应该得到修复,而不清除缓存。好的,刚刚找到了它发生的确切情况。。在这里工作正常:以A身份登录、配置文件A、注销、以B身份登录、配置文件B。但当您编辑其中一个时:以A身份登录、配置文件A、编辑A、注销、以B身份登录、配置文件A,然后启动。编辑配置文件控制器上有一个错误,甚至不应该加载它?对,因为您没有清除单页应用程序的变量和/或cookie…您正在从以前的用户处获取旧值。。。我是说用chrome登录A,然后注销,然后用firefox登录B…你不会有问题的。Chris,当你打开编辑控制器时…它正在设置一些变量,确保注销时清除这些变量,以帮助进一步…在问题中包含你的代码