相关疑难解决方法(0)

现在可以将firebase用作中国的实时数据库

我现在正在开发社交应用程序.但最近我注意到Firebase在中国遭到封锁.所以我想确定firebase是否可以在中国使用?

firebase

33
推荐指数
2
解决办法
2万
查看次数

Firebase身份验证-发生网络错误(例如超时,连接中断或主机不可达)

更新资料

我的应用程序不断在实时应用程序中崩溃。每周有100-200次崩溃。所以我开始悬赏这个问题。如果有人解决了。请帮忙。

但是99%的用户没有崩溃。这些崩溃可能会影响我的应用在Play商店上的存储库。因此,如果我没有解决方案,那么我将最终删除此功能,以在FirebaseAuth中通过电子邮件/密码登录:/

问题:

我在Android应用程序Firebase Auth Login中遇到了很多崩溃(来自249位用户的295次崩溃)。尝试通过电子邮件密码登录的1-2%用户遇到此崩溃。我研究了此错误,并得到提示,当未通过此答案运行播放服务时,会发生这种情况

仅供参考google / facebook身份验证运行正常。此问题仅在通过电子邮件密码登录中。

我尝试了什么?

我试图在登录方法上放置一个try-catch块。并尝试捕获此异常。作为解决方案,我想显示一个对话框,通知用户播放服务未运行。并且他可以手动打开Play商店以启动Play服务,然后再访问此网站。

但是,正如我在Fabric上看到的那样,崩溃永远不会发生阻塞,并且当发生此异常时,应用程序也会崩溃。因为在FirebaseAuth SDK中引发了此错误。

需要什么?

首先,我想确定这个异常的原因。如果由于播放服务未运行而发生这种情况,那么我想向用户显示一个对话框。当前从不显示,在发生以下异常后崩溃。

Fatal Exception: com.google.android.gms.g.f: com.google.firebase.e: A network error (such as timeout, interrupted connection or unreachable host) has occurred.
       at com.google.android.gms.tasks.zzu.getResult(Unknown Source)
       at com.startech.dreamteam11.app.activities.ActivityLogin.tryLogin(Unknown Source)
       at com.startech.dreamteam11.app.activities.ActivityLogin.lambda$-wlX6lv_j3Q0nUN9OuqzHS7ZGP4(Unknown Source)
       at com.startech.dreamteam11.app.activities.-$$Lambda$ActivityLogin$-wlX6lv_j3Q0nUN9OuqzHS7ZGP4.onComplete(lambda)
       at com.google.android.gms.tasks.zzj.run(Unknown Source)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Run Code Online (Sandbox Code Playgroud)

Fatal Exception: com.google.android.gms.g.f: com.google.firebase.e: A network error (such as timeout, interrupted connection or …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication

10
推荐指数
1
解决办法
1028
查看次数

FirebaseNetworkException:网络错误(例如超时、连接中断或主机无法访问)

  • 安卓工作室版本:3.6.3
  • Firebase 组件:身份验证
  • 组件版本:19.4.0

我有一个正在生产的 android 应用程序,在 google play 上的下载量超过 500k,一些用户(我不知道为什么)在登录时出现这个错误......

com.google.firebase.FirebaseNetworkException: A network error (such as timeout, interrupted connection or unreachable host)
       at com.tomatedigital.giveawaymaster.task.LoginTask.lambda$firebaseAuth$1(LoginTask.java:249)
       at com.tomatedigital.giveawaymaster.task.-$$Lambda$LoginTask$p6eSSF8vZ2BATwhlFttcJl8qT-w.onComplete(-.java)
       at com.google.android.gms.tasks.zzi.run(zzi.java:4)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

这些用户、不同的安卓版本、不同的手机型号之间没有简单的关联......

我发现了这个老问题:https : //github.com/firebase/firebase-android-sdk/issues/384但似乎 firebase 团队中的某个人只是把它放在地毯下而不是解决它(在那里很常见)

错误发生在生产中的真实设备中,我在应用程序中嵌入了一个小聊天,一些有问题的用户前来支持,我要求重新安装应用程序,但他们仍然出现错误......这也不是互联网连接问题因为人们在在线聊天中与我交谈并同时遇到问题

crashlytics 显示它发生在 1% 的会话中......

相关代码:

FirebaseAuth.getInstance().signInWithCustomToken(token).addOnCompleteListener(AsyncTask.THREAD_POOL_EXECUTOR, task -> {
                if (task.isSuccessful()) {
                    FirebaseCrashlytics.getInstance().log("new firebase token successfully authenticated");
                } else {
                    App.shouldNeverHappen(new RuntimeException(task.getException().getMessage() + " data: " + sb.toString()));
                    this.exception = task.getException();
                }

});

//token is generated …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication

6
推荐指数
1
解决办法
751
查看次数