I'm trying to create a simple signin/signup application with Firebase, but I'm encountering the following error.
Already tried flutter clean .
E/flutter ( 4727): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(java.lang.Exception: Failed to load FirebaseOptions from resource. Check that you have defined values.xml correctly., Exception, Cause: null, Stacktrace: java.lang.Exception: Failed to load FirebaseOptions from resource. Check that you have defined values.xml correctly. E/flutter ( 4727): at io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin.lambda$optionsFromResource$4$io-flutter-plugins-firebase-core-FlutterFirebaseCorePlugin(FlutterFirebaseCorePlugin.java:207) E/flutter ( 4727): at io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin$$ExternalSyntheticLambda2.run(Unknown Source:4) E/flutter ( 4727): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) E/flutter ( 4727): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) E/flutter ( 4727): at java.lang.Thread.run(Thread.java:923) E/flutter ( 4727): , null) E/flutter ( 4727): #0 FirebaseCoreHostApi.optionsFromResource (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:242:7) E/flutter ( 4727): <asynchronous suspension> E/flutter ( 4727): #1 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:89:25) E/flutter ( 4727): <asynchronous suspension> E/flutter ( 4727): #2 Firebase.initializeApp (package:firebase_core/src/firebase.dart:43:31) E/flutter ( 4727): <asynchronous suspension> E/flutter ( 4727): #3 main (package:firebase_signup/main.dart:7:3) E/flutter ( 4727): <asynchronous suspension> E/flutter ( 4727):
Login Code Snippet:
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
//Login section
class Login extends StatefulWidget {
const Login({Key? key}) : super(key: key); // key düzeltildi
@override
State<Login> createState() => _LoginState();
}
class _LoginState extends State<Login> {
TextEditingController email = TextEditingController();
TextEditingController password = TextEditingController();
signin()async{
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email.text,
password: password.text,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Login")),
body: Padding(
padding: EdgeInsets.all(5), // Padding'in yanına virgül eklendi
child: Column(
children: [
TextField(
controller: email,
decoration: InputDecoration(
hintText: "Enter email",
),
),
TextField(
controller: password,
decoration: InputDecoration(
hintText: "Enter password",
),
),
ElevatedButton(
onPressed: ()=>signin(),
child: Text("Login")
)
],
),
),
);
}
}
Wrapper Code Snippet:
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_signup/homepage.dart';
import 'package:firebase_signup/login.dart';
import 'package:flutter/material.dart';
class Wrapper extends StatefulWidget {
const Wrapper({Key? key}) : super(key: key);
@override
State<Wrapper> createState() => _WrapperState();
}
class _WrapperState extends State<Wrapper> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return HomePage();
} else {
return Login();
}
},
),
);
}
}
HomePage Code Snippet:
import 'package:flutter/material.dart'; // Cupertino import yerine Material import edildi
import 'package:firebase_auth/firebase_auth.dart'; // FirebaseAuth import edildi
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key); // key düzeltildi
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final user = FirebaseAuth.instance.currentUser;
signout() async {
await FirebaseAuth.instance.signOut();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("asd")), // AppBar yazım hatası düzeltildi
body: Center(
child: Text('${user!.email}'), // Kullanıcının e-postası eklendi
),
floatingActionButton: FloatingActi`your text`onButton(
onPressed: () => signout(), // Fonksiyon çağrısı düzgün şekilde yapıldı
child:Icon(Icons.login_rounded) ,
),
);
}
}