安卓Firebase身份验证状态监听器被多次调用

19

我正在使用Firebase Android SDK v.9.0.2,目前无法完成注册。我正在添加身份验证状态侦听器,并在成功注册后将其删除。但是它被调用多次。这是我在日志中得到的内容:

D/FirebaseAuth: Notifying listeners about a sign-out event.
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/ActivityRegister: auth listener called
D/FirebaseAuth: Notifying listeners about user ( bwVX8jBbZvYcIj28hYsGZCcbzxi1 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/ActivityRegister: auth listener called
D/FirebaseAuth: Notifying listeners about user ( bwVX8jBbZvYcIj28hYsGZCcbzxi1 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 1 auth state listeners.

"D/ActivityRegister: auth listener called" 日志信息在监听器内部。可以看到,当 Firebase 通知0个监听器时,实际上它被调用了。而当它显示1个监听器时,监听器根本不会被调用。 有没有解决这个问题的方法?


我也有同样的问题,目前还没有找到任何解决方案。 - Alex
我刚向Firebase的技术支持寻求帮助,正在等待回复。如果有任何收获,我会与你分享。 - Alex
谢谢。目前我正在删除不需要的监听器作为解决方法来触发其他代码,并在该代码失败时重新添加监听器。 - Євген Гарастович
遇到了同样的问题。等待修复。 - Ugurcan Yildirim
似乎这是一个“特性”,因此您必须使用解决方法。 - Євген Гарастович
显示剩余2条评论
2个回答

7

1
你可以在这里找到此方法被触发的时间:
Firebase Reference - AuthStateListener
我使用一个switch来处理此函数的触发,并且只使用“Login_Attempt”和“Register_Attempt”(发送验证电子邮件)的情况,忽略其余的情况。只需创建一个字符串变量(例如,当用户单击“Sign_In”按钮时,将其设置为“Login_Attempt”)。
敬礼

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接