Firebase请求从未在Android上完成

我目前正在用Android Studio 3(Canary)在Kotlin上构建一个原生的Android应用程序。 我也在使用Firebase实时数据库和Firebase身份validation。 这是我的gradle依赖:

dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:design:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.google.firebase:firebase-database:11.0.4' compile 'com.google.firebase:firebase-auth:11.0.4' compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.2' compile 'com.android.support:support-v4:25.3.1' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.firebaseui:firebase-ui-database:2.0.1' testCompile 'junit:junit:4.12' compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } 

一切正常,直到与我的Firebase数据库通信停止完成。 我没有得到任何错误,但是我注册的所有听众都没有被触发。 例如:

 val ref = FirebaseDatabase.getInstance().reference.child("message") ref.setValue("Test", object: DatabaseReference.CompletionListener { override fun onComplete(p0: DatabaseError?, p1: DatabaseReference?) { println("IT WORKED!") } }) 

println语句永远不会到达。

这是一些Logger输出,我相信这一点。 它看起来像所有的WebSocket连接尝试超时,因此重试。 这个输出重复一遍又一遍:

 08-05 15:11:25.899 10820-10909/... D/Connection: conn_12 - Opening a connection 08-05 15:11:55.899 10820-10909/... D/WebSocket: ws_12 - timed out on connect 08-05 15:11:55.899 10820-10909/... D/WebSocket: ws_12 - closed 08-05 15:11:55.899 10820-10909/... D/WebSocket: ws_12 - closing itself 08-05 15:11:55.899 10820-10909/... D/Connection: conn_12 - Realtime connection failed 08-05 15:11:55.899 10820-10909/... D/Connection: conn_12 - closing realtime connection 08-05 15:11:55.899 10820-10909/... D/PersistentConnection: pc_0 - Got on disconnect due to OTHER 08-05 15:11:55.899 10820-10909/... D/PersistentConnection: pc_0 - Scheduling connection attempt 08-05 15:11:55.899 10820-10909/... D/ConnectionRetryHelper: Scheduling retry in 9844ms 08-05 15:12:05.739 10820-10909/... D/PersistentConnection: pc_0 - Trying to fetch auth token 08-05 15:12:05.739 10820-10909/... D/PersistentConnection: pc_0 - Successfully fetched token, opening connection 08-05 15:12:05.739 10820-10909/... D/Connection: conn_13 - Opening a connection 

但是如果我是对的,是什么导致了这个问题呢? 我还没有发现任何类似的问题谷歌搜索。

我在物理设备和仿真器上运行代码。 我有一个Web客户端连接到相同的数据库,但仍然工作,所以我想这不是一个服务器端的问题。

最糟糕的事情是,我把我的项目重新设置到了一个地步,但是这并没有帮助。

我知道这不是很多信息,但我不知道如何进一步分析问题。

这是一个已知的问题。 Firebase客户端尝试使用多种方法建立与Firebase服务器的实时连接。 如果其中一种方法在WebSocket之前成功,我们取消WebSocket并且看到这个警告。 您可以放心地忽略错误。