簡體   English   中英

email 地址格式錯誤,[firebase_auth/invalid-email]

[英]The email address is badly formatted, [firebase_auth/invalid-email]

這是我的代碼..這運行成功,沒有錯誤,但是一旦我點擊注冊按鈕,它就會拋出錯誤。

 import 'package:flutter/material.dart';
  import 'package:firebase_auth/firebase_auth.dart';
  import 'package:firebase_core/firebase_core.dart';
 void main() async {
 WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
 runApp(MaterialApp(
home: Homepage(),
routes: {
  '/home':(context){
    return Homepage();
  },
   '/first':(context){
     return First_Page();
   },
    },
     ));
   }
   class Homepage extends StatefulWidget {
  const Homepage({Key? key}) : super(key: key);

 @override
  _HomepageState createState() => _HomepageState();
   }

  class _HomepageState extends State<Homepage> {
  final Future<FirebaseApp> _initialization = Firebase.initializeApp();
  final _auth= FirebaseAuth.instance;
 final _user=TextEditingController();
  final _pass=TextEditingController();
 String email='';
  String password='';
  @override
   Widget build(BuildContext context) {
  return Scaffold(
  appBar: AppBar(
    backgroundColor: Colors.blue,
    title: Text(
      'Sign-Up',
    ),
    centerTitle: true,
  ),
  body: SingleChildScrollView(
    child: Column(
      children: [
        Padding(
          padding: EdgeInsets.only(top: 250),
        ),
         Container(
           child: TextFormField(
             controller: _user,
             decoration: InputDecoration(
               hintText: "Email-id",
               border: OutlineInputBorder(
                 borderRadius: BorderRadius.circular(10),
               )
             ),
           ),
         ),
        SizedBox(height: 10,),
        Container(
           child: TextFormField(
             controller: _pass,
             decoration: InputDecoration(
               hintText: "Password",
               border: OutlineInputBorder(
                 borderRadius: BorderRadius.circular(10),
               )
             ),
           ),
         ),
        FlatButton(
          color: Colors.blue,
          child: Text('Sign-up'),
          onPressed: () async {
            await Firebase.initializeApp();
            email=_user.toString();
            password=_pass.toString();
            final newuser=await _auth.createUserWithEmailAndPassword(
                email:email.trim(),
                password:password.trim(),
            );
            if(newuser!=null){
              Navigator.pushNamed(context, '/First_Page');
            }
            else print('Error');
          },
        ),
      ],
    ),
    ),
      );
   }
   }
   

這些是我得到的所有錯誤

  E/flutter (10268): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 
  [firebase_auth/invalid-email] The email address is badly formatted.
  E/flutter (10268): #0      MethodChannelFirebaseAuth.createUserWithEmailAndPassword 
  (package:firebase_auth_platform_interface/src/method_channel
  /method_channel_firebase_auth.dart:272:7)
  E/flutter (10268): <asynchronous suspension>
  E/flutter (10268): #1      FirebaseAuth.createUserWithEmailAndPassword 
  (package:firebase_auth/src/firebase_auth.dart:238:7)
  E/flutter (10268): <asynchronous suspension>
  E/flutter (10268): #2      _HomepageState.build.<anonymous closure> 
  (package:firebase/main.dart:79:31)
   E/flutter (10268): <asynchronous suspension>
   E/flutter (10268): 

在 firebase 身份驗證中,我已經啟用了 email 登錄方法,現在我沒有得到我錯誤的地方。 請告訴我。提前謝謝..

對於您正在使用的email地址:

email=_user.toString();

_user為:

final _user=TextEditingController()

因此,您在TextEditingController上調用toString ,它為您提供了 controller 的調試表示。 如果您想要 controller 中的值,您需要使用:

email=_user.value;

要自己發現此類問題,我建議學習設置斷點並使用調試器。 如果您在_auth.createUserWithEmailAndPassword (這是異常的來源)上設置斷點並在調試器中運行,您可以很容易地看到email沒有您期望的值。 從那里應該可以追溯到值的來源,並查看TextEditingController的文檔以查看正確的調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM