2016-11-26 30 views
0

我一直无法找到这个问题的强大解决方案。问题是onAuthStateChanged将在初始化时执行一次,并在解析时再次执行。由于我的应用根据auth状态加载视图,所以初始化总是返回一个不可信的值。如何解决Firebase onAuthStateChanged触发2x(初始化和分辨率)?

有没有强大的解决方案呢?或者这是一个非问题,我只是疯了吗?

我已经看了很多,只发现黑客或解决方法。

一对夫妇:

Firebase Android onAuthStateChanged called twice

Possible to check Firebase 3 auth state synchronously in Javascript?

回答

0

的onAuthStateChanged将始终初始化触发。但是,除非当前Firebase Id令牌发生变化(退出或新登录事件),否则不应再次触发。不过,请记住,每个小时左右刷新Firebase Id令牌,因此刷新令牌时每小时会不断触发。您可以在侦听器中添加逻辑以检查用户是否已更改,并且如果同一用户仍然登录,则忽略。如果您发现其他行为,请通知Firebase团队进行修复。

+0

也许我的语言不够精确。 onAuthStateChanged总是在初始化时执行两次回调。首先它初始化,立即返回null,并执行给定的回调。然后解析,从Firebase返回正确的值,然后再次执行给定的回调。 – skwny

+0

这是否立即发生?我已经提到了每小时左右的令牌刷新。还调用getToken(true)将强制刷新。 – bojeil

+0

我也一直在看这个问题,它是直接的。我相信虽然这可能是由于使用onAuthStateChanged和使用signInWith,都会触发它调用两次。也许这就是问题所在? – jaredwilli