firebase - 如何使用 Flutter 和 Firebase 验证用户电子邮件
问题描述
我正在关注 medium.com 上关于这个特定主题的指南,并创建了一个类来管理身份验证内容,但它给了我一个错误。
import 'package:firebase_auth/firebase_auth.dart';
import 'package:lindo_app/models.dart/user.dart';
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
//auth change user stream
Stream<User> get user {
return _auth.onAuthStateChanged.map(_userFromFirebaseUser);
}
//create user object
User _userFromFirebaseUser(FirebaseUser user) {
return (user != null) ? User(uid: user.uid) : null;
}
//Sign In with Email and Pass
Future signInWithEmailAndPassword(String email, String password) async {
try {
AuthResult result = await _auth.signInWithEmailAndPassword(email: email, password: password);
FirebaseUser user = result.user;
return _userFromFirebaseUser(user);
}
catch(e){
return null;
}
}
//sign out
Future signOut() async {
try{
return await _auth.signOut();
}
catch(error){
print(error.toString(),);
return null;
}
}
// sign up
Future signUp(String email, String password) async {
FirebaseUser user = await _auth.createUserWithEmailAndPassword(email: email, password: password);
try {
await user.sendEmailVerification();
return user.uid;
} catch (e) {
print("An error occured while trying to send email verification");
print(e.message);
}
}
}
错误是:
AuthResult can't be assigned to FirebaseUser on line 47
(要明确“用户”值的最后一种方法)。提前致谢
解决方案
该错误是不言自明的,您正在将返回的值分配createUserWithEmailAndPassword
给一个FirebaseUser
变量,而它返回一个AuthResult
解决您的问题:
Future signUp(String email, String password) async {
AuthResult result = await _auth.createUserWithEmailAndPassword(email: email, password: password);
FirebaseUser user = result.user;
//do something with user
try {
await user.sendEmailVerification();
return user.uid;
} catch (e) {
print("An error occured while trying to send email verification");
print(e.message);
}
}
推荐阅读
- kiwi-tcms - 通过api接口导入测试用例时可以添加作者归档吗?
- r - 更改 R 中的参数对象
- linux - 我想转到一个文件并根据文件中存在的文件名和关键字获取一个值?
- java - -Dspring.profiles.active 条件下无法识别
- filter - 带有url数据源的jqgrid动态过滤器
- android - 如何解决错误 gradle sync 使其他各种库请求的库失败?
- c# - 基于字符串列表的属性过滤数据的表达式
- php - MPDF 总页数
- webhooks - Outlook 推送通知 REST API - 错过的更改类型
- react-native - React Navigation (V2 / V3):如何在屏幕上的 navigationOptions 中访问 navigation.state.index