satococoa's blog

Web や iOS アプリを作るエンジニアの日記です

Firebase Unity SDK を .NET 4.6 で使おうとしたら Task でハマった

@see https://groups.google.com/d/msg/firebase-talk/2w1Lk62VIcg/1ysauzl9CwAJ

2017-10-27 追記

コード中で async/await 使わない場合は (ContinueWith でコールバック書いた場合は) 以下の対応をしなくても、普通に使えた。 合わせて Firebase SDK 4.2.1 にアップデートしているのでそちらの影響かも。。不確かでアレですが、メモとして残しておきます。

追記終わり

どうも System.Threading.Tasks.Task が古い .NET では提供されていないため、Firebase Unity SDK 側が同梱してくれていて、それ関連でうまくいってなかった。

最初に出てたのはこんなエラー。

The type 'Task' exists in both 'Unity.Tasks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' and 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' [Assembly-CSharp]

で、上記 URL の指示に従って Unity 上で作業

  • Assets/Parse/Unity.Tasks を削除
  • Assets/Parse/dotNet45/Unity.Tasks を選択してインスペクタから以下のように設定して有効化

f:id:satococoa:20171025160009p:plain

これで動いた。