Firebase 省道颤振中的异步函数误差

Firebase 省道颤振中的异步函数误差,firebase,flutter,dart,Firebase,Flutter,Dart,所以我试图使用googlefirebase在flatter中创建一个简单的登录页面,但Firebase并没有给我想要的输出。可能它在异步函数中的错误导致它给我“Future”实例的输出 匿名登录dart文件的代码: import 'package:firebase_auth/firebase_auth.dart'; class AuthService { final FirebaseAuth _auth = FirebaseAuth.instance; Future signAnon

所以我试图使用
googlefirebase
在flatter中创建一个简单的登录页面,但Firebase并没有给我想要的输出。可能它在异步函数中的错误导致它给我“Future”实例的输出

匿名登录dart文件的代码:

import 'package:firebase_auth/firebase_auth.dart';

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;

  Future signAnonymous() async {
    try {
      AuthResult result = await _auth.signInAnonymously();
      FirebaseUser user = result.user;
      return user; 
    } catch (e) {
      print(e.toString());
      return null;
    }
  }
}

登录页面代码:

import 'package:flutter/material.dart';
import 'package:freezeria/Screens/services/auth.dart';

class signin extends StatefulWidget {
  @override
  _signinState createState() => _signinState();
}

class _signinState extends State<signin> {
  final AuthService _auth = AuthService();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.purple[300],
      appBar: AppBar(
        backgroundColor: Colors.purple[600],
        elevation: 0.0,
        centerTitle: true,
        title: Text('Sign In To Freezeria!'),
      ),
        body: Container(
          padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0),
          child: ElevatedButton(
            child: Text('SignIn'),
            style: ButtonStyle(
              backgroundColor:
                  MaterialStateProperty.all<Color>(Colors.purple[100]),
            ),
            onPressed: () async {
              dynamic result = _auth.signAnonymous();
              if (result == null) {
                print("Error Signing In");
              } else {
                print('Signed In');
                print(result);
              }
            }
          )
       ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“package:Friceria/Screens/services/auth.dart”;
类签名扩展StatefulWidget{
@凌驾
_signinState createState()=>\u signinState();
}
类_signinState扩展状态{
最终AuthService_auth=AuthService();
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:颜色。紫色[300],
appBar:appBar(
背景颜色:颜色.紫色[600],
标高:0.0,
标题:对,
标题:文本('Sign-In-To-Freezeria!'),
),
主体:容器(
填充:边缘组。对称(垂直:20.0,水平:50.0),
儿童:升降按钮(
子项:文本('SignIn'),
样式:钮扣样式(
背景颜色:
MaterialStateProperty.all(颜色为紫色[100]),
),
onPressed:()异步{
动态结果=_auth.signAnonymous();
如果(结果==null){
打印(“错误登录”);
}否则{
打印(“登录”);
打印(结果);
}
}
)
),
);
}
}
我得到的结果是:

I/flutter ( 8533): Signed In
I/flutter ( 8533): Instance of 'Future<dynamic>'
I/flatter(8533):已登录
I/flatter(8533)‘未来’实例
我需要获得firebase提供的用户详细信息

任何帮助都将不胜感激:)

\u auth.signAnonymous()是一个异步函数,因此它返回一个未来!使用wait关键字获取用户值,而不是未来的对象

result = await _auth.signAnonymous();