79677987

Date: 2025-06-24 17:31:31
Score: 2
Natty:
Report link

// login_screen.dart import 'package:flutter/material.dart'; import 'package:firebase_auth/firebase_auth.dart';

class LoginScreen extends StatefulWidget { @override _LoginScreenState createState() => _LoginScreenState(); }

class _LoginScreenState extends State<LoginScreen> { final _phoneController = TextEditingController(); final _otpController = TextEditingController(); final FirebaseAuth _auth = FirebaseAuth.instance;

String _verificationId = ''; bool _otpSent = false;

void _sendOTP() async { await _auth.verifyPhoneNumber( phoneNumber: '+91' + _phoneController.text.trim(), verificationCompleted: (PhoneAuthCredential credential) async { await _auth.signInWithCredential(credential); }, verificationFailed: (FirebaseAuthException e) { ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Verification failed: ${e.message}'))); }, codeSent: (String verificationId, int? resendToken) { setState(() { _verificationId = verificationId; _otpSent = true; }); }, codeAutoRetrievalTimeout: (String verificationId) { _verificationId = verificationId; }, ); }

void _verifyOTP() async { PhoneAuthCredential credential = PhoneAuthProvider.credential( verificationId: _verificationId, smsCode: _otpController.text.trim(), ); await _auth.signInWithCredential(credential); }

@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('Login via OTP')), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TextField( controller: _phone

Controller,

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @override
  • User mentioned (0): @override
  • Low reputation (1):
Posted by: Niharika Kaladev