Firebaseを紐付けたGoogleAnalyticsのプロパティやアカウントの変更はFirebase上からしようとするとデータが消える

##　はじめに
このお話はフィクションだったらよかったんですが実際に起きてしまった悲しい出来事です。
これ以上同じ轍を踏むアプリ開発者が出ないことを祈ってこの記事を書きました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">FirebaseAnalyticsをGoogleAnalyticsに連携させたけど連携先のアカウント間違ったのでFirebase上で一旦連携をオフにして正しいアカウントに紐付けてみたらAnalyticsデータがすべて吹っ飛びんだ阿呆とは私のことです。</p>&mdash; masaibar@「のぞきみ」リリース (@masaibar) <a href="https://twitter.com/masaibar/status/1187365533714276352?ref_src=twsrc%5Etfw">October 24, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ちなみに現在は**一部のデータを欠損しつつも復旧済み**です。

## ことの経緯
:fire:  < 「GoogleAnalytics連携出来るようになったやで」

:baby:  < 「おっ、とりあえずボタン押してみるか」
:baby:  < 「ボタン押しただけでFirebaseのデータがGoogleAnalytics側にも連携されたわ」
:baby:  < 「さすが天下のGoogleさんやで」

## 悲劇、起きる
:baby:  < 「あれ、でもこれ連携するアカウント間違っとるな」
:baby:  < 「付け替えどうやるんや…」
:baby:  < 「おっ、Firebase設定画面の「このプロジェクトからアナリティクスリンクを解除」押したら紐付け解除できそうやん！（ポチー）」
:baby:  < 「よし消せたわ、これで正しい方のGoogleAnalyticsアカウントに紐付ければええんやな！」

:fire:  < 「データはありません」

:baby:  < 「えぇ・・・」
:baby:  < 「せや！とりあえず間違ってたほうのアカウントに再度紐付ければ直るやろ！」

:fire:  < 「前とは別のプロパティ作って前のアカウントに紐付けておいたぞ」
:fire:  < 「データはありません」

:baby:  < 「なぜなのか」

## 何がいけなかったか
* FirebaseAnalyticsのデータをGoogleAnalyticsで参照しているだけだと思っていた
    * どうやら**連携するとデータはGoogelAnalytics側に移る**らしいという罠
* Firebaseで**選べるのはGoogleAnalyticsのアカウントだけ**
    * プロパティは選べない、自動で新しいものが生成される

そもそも今回のケースのようにアカウントが間違っていたならGoogleAnalyticsの[管理]にある[プロパティ移行]から行うべきだった。


## そこからリカバリまで
### Googleへの問い合わせ
Google翻訳先生のお力を借りつつ、GoogleAnalyticsのお問い合わせフォームからメールを送りました。

:baby: < 「Firebaseと連携するGoogleAnalyticsのプロパティを選択する方法はありますか？」

:man_tone2: < 「リチャードです。 Googleアナリティクスのプロパティリンクに関する問題についてサポートさせていただきます。」
:man_tone2: < 「Firebase用Googleアナリティクスの新しいアップグレードでは、FirebaseプロジェクトにリンクされたGAプロパティに分析データが存在することに注意してください。」
:man_tone2: < 「プロパティのリンクを解除/削除すると、Firebaseプロジェクトで白紙状態になりますが、古いデータは古いGAプロパティで引き続き使用できます。」 
:man_tone2:  < 「現在、Firebaseコンソールを使用してリンクする場合、リンクするGAプロパティを指定することはできません。」

:baby: < （あっ、終わったやんこれ:innocent:）


:angel: < 「今のところ、[removeAnalyticsメソッド](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects/removeAnalytics)を使用してREST APIを使用してGAプロパティのリンクを解除し、[addGoogleAnalyticsメソッド](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects/addGoogleAnalytics)を使用して古いプロパティをリンクできます。」
:angel:  < 「 参照用にこの[FAQページ](https://firebase.google.com/support/faq/#analytics)を確認できます。」

:baby:  < 「リチャードさん神様だった」

### APIの実行
案内してもらったリンクを開くと、そこにはAPIドキュメントだけでなく実行環境まで用意してある親切っぷり。
各種idを入力して実行するとページ内でAPI叩くところまで出来ました、さすが！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68671/0c404110-cfea-ce96-b96a-99c62c4f9585.png)

### Firebaseコンソールでの確認
無事ではないけどFirebaseのデータが復活しました、切り替えの合間の欠損は授業料だと思えば安いもんです:cry: 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68671/9c75fc25-7083-c1e9-7ceb-1dd37e67bb50.png)


## おわりに
これをやらかしてしまったのが会社ではなく個人アプリだったのが唯一の救いでした。
簡単には元に戻せない割に安易に危険な操作が出来てしまう機能をユーザーに推しておきながらも、APIドキュメントに加えて実行環境まで用意してあって危うくGoogleに惚れそうになりました~~これって思いっきりDV加害者の手口なのでは~~。
Firebaseはアプリ開発者にとってかなり身近な存在になってきていると思いますが私のように何も考えずにボタンを押さないよう気をつけてくださいね。

データが復活したとか書きましたが、復旧後もFirebaseとAdMobの連携がバグっているのか収益額が0円と表示される現象が引き続き発生しており、現在Google側に問い合わせ中です（2019/10/29現在）
こちらもAdMob側で見れば正しい収益額が表示されているので連携ミスって収益も消えたというわけではなさそう🤔