更新Flutter Firebase_core dart包后如何在Flutter中初始化Firebase?

时间:2020-09-22 11:37:55

标签: firebase flutter dart firebase-authentication

我将Firebase core添加到Flutter应用中。然后像下面这样初始化。

这是代码,并且错误图像附在下面。 运行应用程序发生的主文件。

#Main.dart

import 'package:flutter/material.dart';
import 'package:mrcci_ec/wrapper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MRCCI Executives',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
        accentColor: Colors.teal,
      ),
      home: Wrapper(),
    );
  }
}

查找是否已通过身份验证的用户。根据该用户将被路由到主页或登录页面。 #Wrapper.dart

import 'package:flutter/material.dart';
import 'package:mrcci_ec/pages/authentication/authenticate.dart';
import 'package:mrcci_ec/pages/home.dart';

class Wrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //return either Home or Authenticate widget
    return Authenticate();
  }
}

认证文件。

#Authenticate.dart

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:mrcci_ec/pages/authentication/signIn.dart';
import 'package:mrcci_ec/pages/home.dart';

class Authenticate extends StatefulWidget {
  @override
  _AuthenticateState createState() => _AuthenticateState();
}

class _AuthenticateState extends State<Authenticate> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    Firebase.initializeApp().whenComplete(() => print('Initialized Complete'));
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: SignIn(),
    );
  }
}

在哪里设置了Firebase。

#FirebaseAuth.dart

import 'package:firebase_auth/firebase_auth.dart';

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;

  Future SignInAuto() async {
    try {
      UserCredential result = await _auth.signInAnonymously();
      User user = result.user;
      return user;
    } catch (err) {
      print(err.toString());
      return null;
    }
  }
}

实际上在此SignIn.dart中发生了错误。

#SignIn.dart

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:mrcci_ec/services/firebase_auth.dart';

class SignIn extends StatefulWidget {
  @override
  _SignInState createState() => _SignInState();
}

class _SignInState extends State<SignIn> {
  @override
  void initState() {
    print('Got into signin');
    // TODO: implement initState

    super.initState();
  }

  final AuthService _auth = AuthService();

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.tealAccent,
      appBar: AppBar(
        backgroundColor: Colors.teal,
        elevation: 0.0,
        title: Text('Sign in to MRCCI EC'),
      ),
      body: Column(
        children: [
          Padding(
            padding: const EdgeInsets.all(20.0),
            child: Container(
              child: MaterialButton(
                child: Text('Sign In'),
                onPressed: () async {
                  dynamic result = await _auth.SignInAuto();
                  if (result != null) {
                    print('Signned in');
                    print(result);
                  } else {
                    print('Singnned Failed');
                  }
                },
                color: Colors.white,
              ),
            ),
          )
        ],
      ),
    );
  }
}

Error Image

0 个答案:

没有答案