セキュリティルールによって弾かれてもそれがわからない
セキュリティルールによってエラーとなった場合、アプリ側で成功したのか失敗したのか分かりません。
エラーキャッチする方法です。
Firestore.instance.collection("collection").document("document").setData({
// data
}).then((_) {
// 更新成功時の処理
}).catchError((error) {
// エラー表示
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("セキュリティルールによるエラーが発生しました: $error"),
));
});
エラーキャッチのサンプル
新規作成する場合のサンプルです。
ボタンを押して登録処理を行います。
child: ElevatedButton(
onPressed: () {
FirebaseFirestore.instance
.collection('items')
.doc()
.set({
'name': name,
'created_at': timestamp,
'updated_at': timestamp
}).then((value) {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text("登録に成功しました")));
}).catchError((error) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("セキュリティルールにるエラー: $error")));
});
},
child: const Text('登録'),
),