我在运行应用程序时遇到问题。初始化应用程序后,我无法同时正确地看到屏幕,出现错误显示 **Future.value();在 Feedback.dart 内。我尝试捕获我添加的任何错误,但找不到任何错误。
我见过很多解决方案也尝试过但没有成功。有人可以告诉我下面显示的错误吗?
这是登录页面文件:
import 'package:flutter/material.dart';
import 'package:food_app/bottombar/screenA.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
State<LoginPage> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
static Future<User?>loginUsingEmailPassword({required String email, required String password, required BuildContext context}) async {
FirebaseAuth auth = FirebaseAuth.instance;
User? user;
try {
UserCredential userCredential = await auth.signInWithEmailAndPassword(email: email, password: password);
user = userCredential.user;
} on FirebaseAuthException catch (e) {
if(e.code == "user not found"){
print("No User found for that email");
}
}
return user;
}
@override
Widget build(BuildContext context) {
TextEditingController emailController = TextEditingController();
TextEditingController passwordController = TextEditingController();
return Scaffold(
appBar: AppBar(
title: const Text("Hello world"),
),
body: SizedBox(
height: 400.0,
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(15.0),
child: TextFormField(
controller: emailController,
decoration: const InputDecoration(
border: OutlineInputBorder(),
hintText: "Enter Username",
),
),
),
const SizedBox(
height: 20.0,
),
Padding(
padding: const EdgeInsets.all(15.0),
child: TextFormField(
controller: passwordController,
obscureText: true,
decoration: const InputDecoration(
border: OutlineInputBorder(),
hintText: "Enter Password",
),
),
),
const SizedBox(
height: 20.0,
),
ElevatedButton(
onPressed: () async{
User? user = await loginUsingEmailPassword(email: emailController.text, password: passwordController.text, context: context);
print(user);
if (user != null) {
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (context) => const ScreenA()));
}
},
child: const Text("Login")),
],
),
),
);
}
}
这是 main.dart 文件:
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:food_app/loginpage.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Future<FirebaseApp> _initializeFirebase() async {
FirebaseApp firebaseApp = await Firebase.initializeApp();
return firebaseApp;
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder(
future: _initializeFirebase(),
builder: (context, snapshot){
if(snapshot.connectionState == ConnectionState.done) {
return const LoginPage();
}
return const Center(
child: CircularProgressIndicator(),
);
},
),
);
}
}
我的错误是:
context.findRenderObject()!.sendSemanticsEvent(const TapSemanticEvent());
switch (_platform(context)) {
case TargetPlatform.android:
case TargetPlatform.fuchsia:
return SystemSound.play(SystemSoundType.click);
case TargetPlatform.iOS:
case TargetPlatform.linux:
case TargetPlatform.macOS:
case TargetPlatform.windows:
return Future<void>.value();
}
}
最终的emptyFuture = Future.value();
如果出现这样的错误,只需关闭调试断点上的未捕获异常即可