Firebaseプロジェクトの削除が出来ない時にやったこと

以前作成して使ってないFirebaseプロジェクトを削除しようとしたところ、「You cannot delete this project because it is linked with a Dialogflow agent.」という表示で削除できませんでした。
いろいろ調べて解決したので、その時にやったことを備忘録として残します。

# 環境

* mac
* Cloud Shell

# Firebaseプロジェクト削除時の表示

リーエンを削除する必要があると表示される。

![スクリーンショット 2021-07-10 9.58.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/7c74393d-ce7f-4d5f-a1cb-3fcd2251c412.png)

詳細のリンク

https://cloud.google.com/vpc/docs/deprovisioning-shared-vpc#removelien

リンクの通りにまずリーエンのリストを表示。

`$ gcloud alpha resource-manager liens list`


プロジェクトがDialogflowと紐づいているので削除できないと表示される。

```
You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/e7a5441f-8ad7-4f81-b2d2-a2ef087781f3/  Deletion blocked by Dialogflow.
```

# リーエンの削除方法

https://cloud.google.com/vpc/docs/deprovisioning-shared-vpc#removelien


>共有 VPC がホスト プロジェクトでアクティブな間、誤って削除されないように、プロジェクトにリーエンが設定されます。このリーエンはプロジェクト オーナーが削除できるため、共有 VPC のプロビジョニングに関するガイドラインには、組織ポリシーを定義してプロジェクト リーエンを削除できる IAM メンバーを制限するステップが含まれています。
>
>ホスト プロジェクトは、通常、次の作業をこの順序で完了してから削除する必要があります。
>
> * すべてのサービス プロジェクトをホスト プロジェクトから接続解除する
> * 共有 VPC を無効化する

上記の手順に沿ってリーエンを削除していきます。

# gcloud SDKのインストール

https://cloud.google.com/sdk/docs/install?hl=JA

ローカルPC環境で実行する場合に必要です。Cloud Shellで実行する場合はインストールは不要です。

今回はCloud Shellの方法で試しました。

# リーエンの削除手順

## 削除プロジェクトの選択
GCPのコンソールにログインして、削除対象のプロジェクトを選択します。

## リーエンの一覧を表示

Cloud Shellを起動して、gcloudコマンドを使ってプロジェクトに接続されているリーエンの一覧を表示して確認します。

https://cloud.google.com/sdk/gcloud/reference/alpha/resource-manager/liens/list

ちょっと改行してなくて見にくいですが、下記にコンソールの表示を貼っておきます。

```
$ gcloud alpha resource-manager liens list
NAME                                                 ORIGIN                                                                                                                                                                                                                           REASON
p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e  You cannot delete this project because it is linked with a Dialogflow agent. Please follow the link to Dialogflow and delete the agent: https://console.dialogflow.com/api-client/#/agent/e7a5441f-8ad7-4f81-b2d2-a2ef087781f3/  Deletion blocked by Dialogflow.
```

上記で、`p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e` この部分が削除対象のリーエンIDです。


## リーエンの削除
gcloudコマンドで、リーエンを削除します。

`gcloud alpha resource-manager liens delete LIEN_ID`

ここで LIEN_ID に前段で確認したリーエンIDをセットします。

https://cloud.google.com/sdk/gcloud/reference/alpha/resource-manager/liens/delete

```
$ gcloud alpha resource-manager liens delete p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e
Deleted [liens/p772374303240-l1e76e012-2d41-4ae4-a1e4-b468f8b7d57e].
```

再度リーエンの一覧を確認して、0件になっていたら削除完了です。

```
$ gcloud alpha resource-manager liens list
Listed 0 items.
```

# Firebaseプロジェクトを削除

再度、削除対象のFirebaseプロジェクトを開き、「プロジェクトの設定」→「全般」を選択します。
![スクリーンショット 2021-07-10 9.57.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/3a1f0487-128e-bd95-b696-7011eba907d8.png)


プロジェクトの削除を選択します。
![スクリーンショット 2021-07-10 9.57.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/845fccd4-270a-1939-22e5-e641703e2c04.png)


プロジェクトの削除確認ダイアログが表示されたら、全てにチェックしてプロジェクトを削除を押下します。
![スクリーンショット 2021-07-10 9.58.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/89f34731-1c41-f538-713e-9d97f59f1b06.png)

しばらくするとプロジェクトが削除されます。