当前位置: 首页 > 知识库问答 >
问题:

无法通过使用Navigator.Push()登录电子邮件和密码访问Flutter[副本]中的其他窗口

锺离珂
2023-03-14

我想从登录到家庭窗口访问,但当我尝试用现有帐户登录时,按钮不工作,窗口保持不变。

import 'package:finalproject/Pages/home.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';

class LoginPage extends StatefulWidget {
  @override
  _LoginPageState createState() => new _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  String _email, _password; 

 @override
 Widget build(BuildContext context) {
return new Scaffold(
  appBar: new AppBar(
    title: Text('Sign in'),
  ),
  body: Form(
    key: _formKey, 
    child: Column(
      children: <Widget>[

        TextFormField(
          validator: (input) {
            if (input.isEmpty) {
              return '  Write your email';
            }
            return null;
          },
          onSaved: (input) => _email = input,
          decoration: InputDecoration(labelText: '  Email'),
        ),

        TextFormField(
          validator: (input) {
            if (input.length < 6) {
              return '  Write your password';
            }
            return null;
          },
          onSaved: (input) => _password = input,
          decoration: InputDecoration(labelText: '  Password'),
          obscureText: true,
        ),

        RaisedButton(
          onPressed: signIn,
          child: Text('Sign in'),
        ),],),),);}


void signIn() async {

if (_formKey.currentState.validate()) {
  _formKey.currentState.save();
  try {
    // ignore: deprecated_member_use
    UserCredential authResult = await FirebaseAuth.instance
        .signInWithEmailAndPassword(email: _email, password: _password);
    final User user = authResult.user;

    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => Home()),
    );
  } catch (e) {
    print(e.message);
  }}}}

而且,我总是在按下签到按钮后收到这条消息。

I/flutter(3130):未创建Firebase应用程序“[DEFAULT]”-调用Firebase.InitializeApp()

也许这就是原因?

共有1个答案

逄嘉禧
2023-03-14

您需要初始化FireBaseApp。您可以在您的主要功能中这样做:

void main() async {
 
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
   
  runApp(MyApp());
}
 类似资料:
  • 我有一个flutter应用程序,我试图使用firebase电子邮件无密码登录。发送部分正在工作,但当我打开链接时,我得到一个错误: 但是,actioncode设置中的handleCodeInApp参数为true。 Uri在这里创建: FirebaseAuth中的isSignInWithEmailLink检查在我使用的^0.20.0+1版本中不能正常工作。有关如何修复此问题,请参考https://g

  • 我正试图在我的应用程序上实现无密码电子邮件登录。点击链接后,应用程序从后台返回,但动态链接为空。 这就是我发送邮件的方式(当然是用我的应用程序的正确值): 我还补充了以下意图: 尝试了不同的变体,但没有帮助,包括将firebase项目url作为主机编写,如: 数据仍然是空的。 有什么想法吗?我是不是漏掉了什么?

  • 问题内容: 我希望django通过电子邮件而非用户名对用户进行身份验证。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个,所以我不能有一个。 另一个原因是所有电子邮件都是唯一的,但有时用户名已被使用。因此,我将自动创建用户名为。 我该如何更改才能让Django通过电子邮件进行身份验证? 这就是我创建用户的方式。 这就是我的登录方式。 除了先获取用户名外,登录还有其他方法吗?

  • 我希望django通过电子邮件而不是用户名来验证用户。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个url

  • 我想登录我的spotify帐户并获取我的持有者令牌。我试图用请求模块执行此操作,但我无法管理登录操作。如果您告诉我如何使用请求模块登录帐户并获取持有者令牌,我将非常高兴。如果您不知道这一点,如果您可以登录硒模块的帐户并告诉我如何获取下图中的值,我将非常高兴:)(登录帐户是通过邮件,密码)