Firebase身份验证:网络请求的默认超时时间过长3分钟(来自AppStore Review的问题)

Firebase身份验证:网络请求的默认超时时间过长3分钟(来自AppStore Review的问题),firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,我只是想在app store上发布一个Flitter应用程序,我正在使用Firebase Auth插件 审查中发现的一个问题是,该应用程序似乎在登录或注册新用户时挂起 经过调查,我无意中发现了网络连接不稳定或不可用的情况。使用Email和Password登录的超时时间似乎是在我收到异常错误\u网络\u请求\u失败之前3分钟左右。那太长了。最终用户不会等待3分钟 由于在API中找不到取消网络请求或设置自定义超时的选项,因此我尝试了一个简单的修复方法,并在将来使用超时方法: FirebaseAuth

我只是想在app store上发布一个Flitter应用程序,我正在使用Firebase Auth插件

审查中发现的一个问题是,该应用程序似乎在登录或注册新用户时挂起

经过调查,我无意中发现了网络连接不稳定或不可用的情况。使用Email和Password登录的
超时时间似乎是在我收到异常
错误\u网络\u请求\u失败之前3分钟左右。那太长了。最终用户不会等待3分钟

由于在API中找不到取消网络请求或设置自定义超时的选项,因此我尝试了一个简单的修复方法,并在将来使用超时方法:

FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: password).timeout(Duration(seconds: 30))
这似乎在一开始就起作用了,结果是,我的登录加载对话框可以在30秒后关闭,并显示一条关于网络连接的错误消息。但如果我在3分钟前激活网络连接,我会发现自己突然登录到应用程序,因为
FirebaseAuth
会带着经过身份验证的用户返回。因此,你可以欺骗某人使用他的用户/密码登录,让他认为它不起作用,然后再次激活网络,发现自己与其他人的用户一起登录

所以这个天真的解决方案显然不起作用。现在,我在考虑如何防止这种情况,并在
onAuthStateChanged
事件中实现一些逻辑,以便在用户在30秒后收到超时时,可以再次触发立即注销。但这就为许多其他问题打开了潘多拉的盒子,并将导致相当复杂的逻辑,因为与同一用户或其他用户的各种其他登录/注销事件可能同时发生

那么,我该怎么走呢?是否有其他简单可靠的解决方案来设置自定义超时