[Firestore] スタートアップ時に起こりやすいPermission Error 〜Database Rule編〜

Firebase Databaseを使い始めてしばらくしたら、以下のエラーでクエリできないようになった。

flutter: PlatformException(Error 7, FIRFirestoreErrorDomain, Missing or insufficient permissions.)

FirebaseのDatabase→ルールタブではDatabase接続のセキュリティルールを設定できるが、初期状態では以下のコメントが書いてある。

// This rule allows anyone on the internet to view, edit, and delete
// all data in your Firestore database. It is useful for getting
// started, but it is configured to expire after 30 days because it
// leaves your app open to attackers. At that time, all client
// requests to your Firestore database will be denied.
//
// Make sure to write security rules for your app before that time, or else
// your app will lose access to your Firestore database

要約すると「30日以外にアプリのセキュリティルールを設定しないと、自動でアクセス拒否にするよ」という内容。

allow部分を以下のようにすると、アクセスできるようになる。

allow read, write: if true;

ただし、この内容だとアクセス全通しなので、アプリリリース時はアプリごとにちゃんと認証設定する必要がある。

https://firebase.google.com/docs/firestore/security/get-started?hl=ja