我正在将使用Parse作为骨干用户数据库的应用转换为Firebase。在呈现任何视图或执行控制器之前,Parse似乎总是重新验证用户。即如果你在网站上打开一个页面(甚至是像www.mysite.com/admin/my_account_details这样的深层链接页面),
Parse.User.current()
将返回当前用户 - Parse工具包已重新验证(或缓存)当前用户的数据。因此,如果用户已登录,控制器代码可能依赖于Parse.User.current()始终是有效的用户对象,即使页面在网站深处打开(例如,通过书签)。
Firebase似乎不会这样工作。在我的.run()方法中,我有一些效果:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// do something with current user
}
});
但是此代码在控制器代码之后执行,这取决于当前用户的信息。换句话说,
firebase.auth().currentUser
没有返回任何用户,即使在firebase加载完成后,也会有当前用户。
我在这个诊断中是否正确?有没有办法确保firebase在执行任何控制器代码之前重新连接当前用户?