Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决Firebase onAuthStateChanged Fireing 2x(初始化和解析)?_Firebase_Firebase Authentication - Fatal编程技术网

如何解决Firebase onAuthStateChanged Fireing 2x(初始化和解析)?

如何解决Firebase onAuthStateChanged Fireing 2x(初始化和解析)?,firebase,firebase-authentication,Firebase,Firebase Authentication,我一直无法找到解决这个问题的有力办法。问题是,onAuthStateChanged在初始化时执行一次,在解决时执行一次。由于我的应用程序根据身份验证状态加载视图,因此初始化总是返回一个不可靠的值 有没有强有力的解决办法?或者这不是问题,我只是疯了 我看了不少,只找到了一些黑客或变通方法 一对夫妇: 初始化时始终会触发onAuthStateChanged。但是,除非当前Firebase Id令牌(注销或新登录事件)发生更改,否则不应再次启动。但是,请记住,firebase Id令牌大约每小时刷新

我一直无法找到解决这个问题的有力办法。问题是,
onAuthStateChanged
在初始化时执行一次,在解决时执行一次。由于我的应用程序根据身份验证状态加载视图,因此初始化总是返回一个不可靠的值

有没有强有力的解决办法?或者这不是问题,我只是疯了

我看了不少,只找到了一些黑客或变通方法

一对夫妇:


初始化时始终会触发onAuthStateChanged。但是,除非当前Firebase Id令牌(注销或新登录事件)发生更改,否则不应再次启动。但是,请记住,firebase Id令牌大约每小时刷新一次,因此当令牌刷新时,这将每小时不断触发。您可以在侦听器中添加逻辑,以检查用户是否已更改,并忽略同一用户是否仍在登录。如果您注意到任何其他行为,请通知Firebase团队进行修复。

也许我的语言不够精确。onAuthStateChanged始终在初始化时执行两次回调。首先,它初始化,立即返回
null
,并执行给定的回调。然后它解析,从Firebase返回正确的值,然后再次执行给定的回调。这会立即发生吗?我已经提到代币大约每小时刷新一次。同时调用getToken(true)将强制刷新。我也看到了这个问题,而且它是即时的。但我相信这可能是由于同时使用了onAuthStateChanged和signInWith,两者都触发了它的两次调用。也许这就是问题所在?