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();