Flutter - 尝试构建未来的上下文来检查用户是否登录,但我的构建方法有错误

vwd*_*aal 5 firebase flutter

flutter 相当新鲜,我有一个可以成功登录 Firebase 的应用程序。但是现在我正在尝试这样做,以便如果用户已经注册,应用程序会跳过注册页面。我为这篇文章开始了一个新模板。

我使用这篇文章:如何正确检查用户是否登录以获得灵感,但我的似乎抛出错误。如果这有什么不同的话,我正在使用 VSCODE:

import 'package:buildfuture/FirstPage.dart';
import 'package:buildfuture/SecondPage.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';

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

class MyApp implements StatelessWidget {

  @override 
    Widget build() {
      return FutureBuilder<FirebaseUser>( 
        future: FirebaseAuth.instance.currentUser(),
        builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {

          if (snapshot.hasData) {
            FirebaseUser user = snapshot.data;
            return First();
          }
           return Second();
          }
      );
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白这个错误:

“Object.toString”(“String Function()”)不是“Diagnosticable.toString”(“String Function({DiagnosticLevel minLevel})”)的有效覆盖。

“MyApp.build”(“Widget Function()”)不是“StatelessWidget.build”(“Widget Function(BuildContext)”)的有效覆盖。

以防万一我还包含了 FirstPage.dart。SecondPage.dart 完全相同,只是类名为 Second

import 'package:flutter/material.dart';

class First extends StatelessWidget {

  @override
  Widget build(BuildContext context){
    return new Container(
      child: new Center(
        child: new Icon(Icons.accessibility_new, size: 150.0, color: Colors.brown)
      )
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ura 3

错误是线class MyApp implements StatelessWidget

您应该使用extends关键字代替implements

尝试:

class MyApp extends StatelessWidget{ // your class body ... }
Run Code Online (Sandbox Code Playgroud)

并且build方法签名必须包含BuildContext参数。

@override
Widget build(BuildContext context){ return ... }
Run Code Online (Sandbox Code Playgroud)