2017-08-05 8 views
1

現在、Androidスタジオ3(カナリア)のネイティブAndroidアプリをKotlinで作成しています。 Firebase Realtime DatabaseとFirebase Authも利用しています。Androidでファイアベースのリクエストが完了しない

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クライアントを持っていますが、これはまだ動作しています。したがって、サーバー側の問題ではないと思います。

最悪のことですが、私は仕事に慣れていたにもかかわらず助けにならなかった点にプロジェクトをリセットしました。

私はこれがあまり情報ではないことを知っていますが、私はその問題をさらに分析する方法がわかりません。

答えて

1

これは既知の問題です。 Firebaseクライアントは、複数の方法を使用してFirebaseサーバへのリアルタイム接続を確立しようとします。これらのメソッドの1つがWebsocketの前に成功すると、Websocketがキャンセルされ、その警告が表示されます。このエラーは無視しても問題ありません。

+1

Uhm ...このログ出力は、試してみると13番目です。私はそれが通常の握手/交渉の一部であるとは確信していません。クライアントは単にサーバーにアクセスできない可能性が高いようです。 –

関連する問題