「原因がわからなくて詰んでる」みたいな状態になったバグがありましたので共有します。
参考:[Crash] Firebase crashes on some Windows machines #1284
バグの状況
特定のPCのみ、Firebaseの読み込みを実行するとゲーム(スタンドアロンアプリ)が落ちる。
Unity Editor上では問題なし。
問題なく動くPCは、初期化しても問題なく動く(=インストール関連ではない)。
動かない特定のPCに何をインストールしても、挙動は変わらない。
修正用コード
Firebaseの初期化に1行追加するだけです。
db = FirebaseFirestore.DefaultInstance; db.Settings.PersistenceEnabled = false; # スタンドアロンアプリの場合falseに設定
エラー例
デバッグしてみると、以下のログが出ます。
「HttpSocketを頑張って動かしているのに、なぜかうまくいかない(ループする)」ような挙動を示します。
0x00007FFA7ED1A569 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED1B8CB (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED17751 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED18320 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED18F89 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED19279 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED15AB3 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED08B91 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7EB81544 (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EB6B387 (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EB4F8AF (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EB4FFBB (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EB48C39 (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EB3E791 (FirebaseCppApp-9_0_0) uS::Node::getLoop 0x00007FFA7EFAC9F4 (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFA7ED0245F (FirebaseCppApp-9_0_0) uWS::HttpSocket<0>::upgrade 0x00007FFAF4691BB2 (ucrtbase) configthreadlocale 0x00007FFAF57C7034 (KERNEL32) BaseThreadInitThunk 0x00007FFAF6EE2651 (ntdll) RtlUserThreadStart
原因と思っていたもの
結局、上の1行で対応できましたが、色々試していました。
・インストールが足りていない?
Visual Studio
Visual C++
その他Unity関連のインストールモジュール
原因
Firebaseのバグ。
特定のPCで読み込みがループしてしまう。