我正在使用authWithCustomToken方法使用Firebase登錄。登錄大約需要5秒鐘或更長時間。我啓用了Firebase日誌(setLogLevel(Logger.Level.DEBUG))進行監控是否存在任何問題。日誌是在這裏(我修剪一下,如果需要的話我可以給一個鏈接吧):Android,Firebase登錄需要多長時間,發生WebSocketException
PS:Android的火力客戶端版本是2.5.0
ws_0 - websocket opened
conn_0 - Got control message: {t=r, d=s-softlayer.firebaseio.com}
conn_0 - Got a reset; killing connection to tbf.firebaseio.com; Updating internalHost to s-softlayer.firebaseio.com
conn_0 - closing realtime connection
handleIncomingFrame complete frame: {d={t=r, d=s-softlayer.firebaseio.com}, t=c}
ws_0 - websocket is being closed
ws_0 - had an error
com.firebase.tubesock.WebSocketException: IO Error
at com.firebase.tubesock.WebSocketReceiver.run(WebSocketReceiver.java:78)
at com.firebase.tubesock.WebSocket.runReader(WebSocket.java:372)
at com.firebase.tubesock.WebSocket.access$000(WebSocket.java:30)
at com.firebase.tubesock.WebSocket$2.run(WebSocket.java:108)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.io.EOFException
at libcore.io.Streams.readFully(Streams.java:83)
at java.io.DataInputStream.readFully(DataInputStream.java:99)
at com.firebase.tubesock.WebSocketReceiver.read(WebSocketReceiver.java:141)
at com.firebase.tubesock.WebSocketReceiver.run(WebSocketReceiver.java:34)
at com.firebase.tubesock.WebSocket.runReader(WebSocket.java:372)
at com.firebase.tubesock.WebSocket.access$000(WebSocket.java:30)
at com.firebase.tubesock.WebSocket$2.run(WebSocket.java:108)
at java.lang.Thread.run(Thread.java:818)
ws_0 - |IO Error|
ws_0 - closed
conn_1 - Opening a connection
ws_1 - websocket opened
ws_1 - handleIncomingFrame complete frame: {d={t=r, d=s-dal5-nss-19.firebaseio.com}, t=c}
conn_1 - Got control message: {t=r, d=s-dal5-nss-19.firebaseio.com}
conn_1 - Got a reset; killing connection to s-softlayer.firebaseio.com; Updating internalHost to s-dal5-nss-19.firebaseio.com
conn_1 - closing realtime connection
ws_1 - websocket is being closed
ws_1 - had an error
com.firebase.tubesock.WebSocketException: IO Error
at com.firebase.tubesock.WebSocketReceiver.run(WebSocketReceiver.java:78)
...
Caused by: java.io.EOFException
at libcore.io.Streams.readFully(Streams.java:83)
...
ws_1 - |IO Error|
ws_1 - closed
conn_2 - Opening a connection
ws_1 - had an error
com.firebase.tubesock.WebSocketException: IO Exception
...
ws_1 - |IO Exception|
ws_2 - websocket opened
conn_2 - Got control message: {t=h, d={ts=1452086065546, v=5, h=s-dal5-nss-19.firebaseio.com, s=EaQhQ7iRAjeWVxvzBJEFD7k4TKFsmrms}}
conn_2 - realtime connection established
這是日誌說有一個錯誤?
我應該忽略它嗎?如果是,爲什麼登錄時間太長?
但是,總是前兩個連接失敗。第三次成功。這很奇怪,不是嗎? – wisemann
沒有,據我所知,這是正常的。在初始連接時,您可以訪問「隨機」Firebase服務器。由於這不太可能是您需要的服務器,因此您將重定向到正確的服務器。由於各種原因,您的情況是兩步過程。但是IIRC最終的服務器名稱應在第一次建立實時連接後進行存儲。 –
問題是每次都發生這種情況,而不是某個時候。我會評論更新。感謝您的幫助 – wisemann