我目前正在使用Android Studio 3(Canary)在Kotlin中构建原生Android应用程序。我也在使用Firebase实时数据库和Firebase身份验证。这里是我的锄头依赖:从未在Android上完成Firebase请求
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
声明从未达到过。
这是一些记录器的输出,我相信。它看起来像所有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客户端连接到同一个数据库,但仍然在工作,所以我想这不是服务器端问题。
最糟糕的是,我重置我的项目到一个点,它曾经工作,但没有帮助。
我知道这不是太多的信息,但我不知道如何进一步分析问题。
呃...这个日志输出表明它正在尝试#13。我不相信这是正常握手/谈判的一部分。客户端似乎更有可能无法访问服务器。 –