Я изучаю Flutter и хочу поймать исключение, которое должно быть сгенерировано (поскольку правило безопасности правильно отклоняет его) в приложении / устройстве Flutter.
Ниже приведен код
try {
FirebaseDatabase.instance.reference().once().then((DataSnapshot snapshot) {
try {
debugPrint(snapshot.toString());
}
on DatabaseError catch (eIn1) {
debugPrint(' onRoot ' + eIn1.toString());
}
});
}on DatabaseError catch (eOut1) {
debugPrint(' on1 ' + eOut1.toString());
}
try {
FirebaseDatabase.instance.reference().child("todo").once().then((DataSnapshot snapshot) {
try {
debugPrint(snapshot.toString());
}
on DatabaseError catch (eIn2) {
debugPrint(' onNode ' + eIn2.toString());
}
});
}on Exception catch (eOut2) {
debugPrint(' on2 ' + eOut2.toString());
}
Но исключение никогда не генерируется и не перехватывается Android Studio. В logCat я вижу исключение,
com.example.flutterlogindemo E / flutter: [ОШИБКА: flutter / lib /ui/ui_dart_state.cc(157)] Необработанное исключение: DatabaseError (-3, разрешение отклонено,) # 0 Query.once (package: firebase_database / src / query.dart: 84: 41) # 1 _HomePageState.initState ( пакет: flutter_login_demo / pages / home_page.dart: 48: 65)
, но не может найти его, чтобы перехватить его в коде и затем действовать в исключении.