4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unity+Firebase RealTimeDatabase Editor上で環境によっては突然接続できなくなる

Posted at

#経緯
コワーキングスペース的な所でドヤリングしながら、Unity+FirebaseRealtimeDatabaseでゲーム作ろうとしたら

「[Error] WebSocket: ws_0 - could not connect」
「[Error] WebSocket: ws_0 - WebSocketException during handshake
Firebase.Database.Internal.TubeSock.WebSocketException: unknown host: ****.firebaseio.com ---> System.Net.Sockets.SocketException: No route to host」

みたいに怒られてなんで?となったので記録しときます

#結論

Realtime Database connection is flakey on desktop
https://github.com/firebase/quickstart-unity/issues/106#issuecomment-426835393

desktop上(Unity Editor)だとネット環境によっては上手く接続できない事があるみたいです。

対策は以下
*利用している環境を変える(違うwifiやネット環境を利用する)
*「Firebase/Plugins/FirebaseDatabase.dll」をEditor上で有効にする(但し動作が不安定)

##再現環境
MacBook Pro (15-inch, 2017)
OS:10.13.6(17G5019) High Sierra
Unity: 2018.3.0f2
Scripting Runtime Version: .NET 4.x Equivalent

##まずそもそも読み書き権限つけ忘れてないか確認
RealtimeDatabaseはルールを設定して読み書きの権限を設定できます。
うっかり

{
  "rules": {
    ".read": false,
    ".write": "auth != null && auth.isAdmin == true"
  }
}

なんてしてたら当然読み込みできません。(自分はうっかりしてたけど・・・)
ちなみにその場合はこういう警告がEditorのコンソールに出力されます。

[Warn] SyncTree: Listen at /******* failed: DatabaseError: Permission denied
UnityEngine.Debug:LogWarning(Object)

##権限ちゃんとついてるのに何故かエラーになるんだけど・・・
で、うっかり権限を修正した後に冒頭のエラーに出くわして、なんでえええええっとなってたわけでした。
ネットの海を泳いで、結論のページにたどり着きました。

実際にやって見た所

1.ポケットwifiを持っていたので、コワーキングスペースのwifiからそちらを利用するように切り替えるとちゃんと応答返ってきてデータ取れました。
→お家に帰った後に有線、無線両方の環境で再度確認した所両方データ取れました。
 ピンポイントでハズレ引いたみたい・・・

2.コワーキングスペースのwifiに戻して、「Firebase/Plugins/FirebaseDatabase.dll」をEditor上で有効にしたら同様にデータ取れました
 →Import時に特に設定を変更していない場合「Assets/Firebase/Plugins/FirebaseDatabase.dll」に対象のファイルがいます。

スクリーンショット 2019-02-03 19.51.27.png

但しissueに記載の通り動作は不安定で、時々UnityEditor毎落ちます

However, if you have to use it, you should expect the instability. This is why it is disabled for Editor by default.

↓↓↓Google 翻訳
しかし、あなたがそれを使わなければならないなら、あなたは不安定さを期待するべきです。エディターではデフォルトで無効になっているのはこのためです。

###感想
もし、制作する側の立場の場合、こういう環境に依存するようなやつが一番めんどくさいだろうなとは思います。
そもそもFirestore使えと言われたら、ハイ、スイマセンって感じですが・・・

###参考
https://stackoverflow.com/questions/50651865/unityfirebase-databaseerror-websocket-ws-0-could-not-connect
https://github.com/firebase/quickstart-unity/issues/106#issuecomment-426835393

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?